【VBA】画面キャプチャを取得する

これに関しては、以下のブログがすべてだと思う。まじで。

VBA スクリーンショットを撮るたびに自動でシートに張り付けるマクロ - t-hom’s diary

 

【PowerShell】SendKeysを使用して処理を自動化

今回はパワーシェルでSendKeysを利用して、面倒な日常的・反復的な操作をパソコンにやらせましょう。

今回紹介するのは、メモ帳を起動して"あいうえお"と書き込んで保存をする、という操作。(そんなことはSendKeysを使ってやることではないが、SendKeysの手法を知るためにはいい練習になるので紹介)

コードは以下である。
しかし、これは諸刃の剣でもあり、スリープによる制御の時間が短い場合は、予期せぬ動作が起こるので、使い方には十分気を付ける必要がありそう。

#System.Windows.Formsのインポートを行う
add-type -AssemblyName System.Windows.Forms

#メモ帳を開く
notepad

#500ミリ秒スリープ
start-sleep -Milliseconds 500
#aiueoと入力
[System.Windows.Forms.SendKeys]::SendWait("aiueo")
start-sleep -Milliseconds 500
#%(パーセントはAltを表す)と入力
[System.Windows.Forms.SendKeys]::SendWait("%")
start-sleep -Milliseconds 500
#メモ帳を開いてAlt→f→aと打ってみればわかるさ
[System.Windows.Forms.SendKeys]::SendWait("fa")
start-sleep -Milliseconds 500
#ファイル名を入力
[System.Windows.Forms.SendKeys]::SendWait("text0")
start-sleep -Milliseconds 500
#Alt→dと打ってみればわかるさ
[System.Windows.Forms.SendKeys]::SendWait("%d")
start-sleep -Milliseconds 500
#保存先を入力
[System.Windows.Forms.SendKeys]::SendWait("d:")
start-sleep -Milliseconds 500
#エンターは{}で囲う
[System.Windows.Forms.SendKeys]::SendWait("{ENTER}")
start-sleep -Millisecon1ds 500
#保存
[System.Windows.Forms.SendKeys]::SendWait("%s")
start-sleep -Milliseconds 500
#メモ帳を閉じる
[System.Windows.Forms.SendKeys]::SendWait("%{F4}")