ちょっと勉強意欲がわいてきた
最近ポケモンUniteにはまったのと、自転車のミニベロロード(tern serge)購入して自分で没頭できる趣味が増えてきたので少しずつ自分を取り戻せてきた感じ。 前は仕事の勉強しなきゃと追い込まれてなんか燃え尽き症候群のようになったり病んでいたりしたけど徐々に回復中。 やっぱ没頭するのはいいね。
というわけで、少しずつ勉強意欲が復活してきたのでAWS勉強しようかなと思ったのですが、AWSの操作を実際にキャプチャとかに残したいなと思いキャプチャ取得関係を少し調べたり作成したりしてました。調べたことをちょっと紹介。
Windows(10想定)デフォルトの機能
Win+Shift+S
画面が静止して、キャプチャする領域を指定してクリップボードに保存できる。会社で今のところ最も使ってるショートカットと言っても過言じゃない。クリップボードなので、そのままチャットツールやエクセルにペースト可能。クリップボードに保存されたら画面右下に通知が出て、それをクリックするとそのまま画像の編集画面に行くのでちょっとした画面の指摘したいときはそこで赤い丸とかで囲んでチャットで聞いたりできて便利。おすすめ。
Win+PrintScreen
プリントスクリーンで取得される画面(基本全画面)を画像ファイルとして保存までしてくれるショートカット。保存先はデフォルトでユーザーごとのピクチャのフォルダ配下にスクリーンショットのフォルダが自動作成されてそこで作成されている。全画面のキャプチャになってしまうので、デュアルディスプレイだと2画面の横断して取得されてしまうので、次に紹介する方が使い勝手がいいと思う。
Win+Alt+PrintScreen
アクティブな画面を画像ファイルとして保存できるショートカット。↑のショートカットよりこっちの方が使う頻度は今後多いと思われる。ただ保存先がなぜかユーザーごとのビデオ配下にスクリーンショットとして作成されるので保存先が変。あとキャプチャ名がアクティブ画面の名前なので更新日付順にソートしないとちょっと見にくい。てかこれらのショートカット機能知らなかったのでWinShotをインストールして使ってたが今後はいらんな。。。
(オマケ)Win + g
ビデオ録画可能な画面が表示される。ブラウザとかの操作画面のビデオとか。PCから出力されている音声もちゃんと入ってた。ただ自分のPCが少し古くてスペック不足なのかわからないが音声はちょっとぶつぶつしていた。
エクセル証跡
↑で紹介したもの便利だが、個人的にエクセルに保存して縦スクロールしながら証跡を見たいなーと思い、VBAスクリプトとか落ちてないか調べて改修しました。 ※以下参考
' 参考 https://qiita.com/snaruse0608/items/4d6022c43e65fe0eee4c Declare Function OpenClipboard Lib "user32" (Optional ByVal hwnd As Long = 0) As Long Declare Function CloseClipboard Lib "user32" () As Long Declare Function EmptyClipboard Lib "user32" () As Long Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal ms As Long) Sub クリップボードにコピーした画像を貼り付ける() OpenClipboard EmptyClipboard CloseClipboard Dim CB As Variant Dim position As Long Dim size As Double: size = 1 Do While True CB = Application.ClipboardFormats If Not ActiveCell.Row = 1 Then If StrConv(ActiveCell.Offset(-1, 0).Value, vbUpperCase) = "EXIT" Then GoTo Quit End If On Error GoTo ErrorQuit For i = 1 To UBound(CB) If CB(i) = xlClipboardFormatBitmap Then ActiveSheet.Paste 'Selection.ShapeRange.Height = Cells(1.1).Height * position Set objShp = ActiveSheet.Shapes(Selection.Name) objShp.LockAspectRatio = msoTrue position = objShp.Height \ Cells(1.1).Height ActiveCell.Offset(position + 2, 0).Select OpenClipboard EmptyClipboard CloseClipboard End If Next i DoEvents Sleep 1 Loop Quit: MsgBox "停止しました。", vbInformation ActiveCell.Offset(-1, 0).ClearContents GoTo ToEnd ErrorQuit: MsgBox "予期せぬ動作のため停止しました。", vbInformation ToEnd: End Sub
見直しとかしてないけど使った感じの挙動は問題ないと思ってる。改修点は以下。
- 元スクリプトでは33行ごとにキャプチャを張り付けていたので、張り付けたキャプチャの高さに合わせて次のセルを選択するように
- CPU使用率が20-40%位になっていたのでSleep処理を追加