SendKeysにより
・キーボード操作を自動化
できます!
定期的にキーボード操作を自動化することで、
・チャットアプリを離席中にさせない
ようにできます!
VBAコード
ここでは例として、
・繰り返し回数は360回
・5秒Sleepさせて
・セル「A1」へ経過時間を入力
・SendKeysで「CTRL」を押下(=キーボード操作を自動化)
するVBAコードを記載します。
Option Explicit
'Windows APIのSleep関数を使用できるようにする
Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub sample()
'繰り返し回数
Const COUNT As Long = 360
Dim startDateTime As Date
Dim endDateTime As Date
Dim i As Long
'開始日時を取得
startDateTime = Now
For i = 1 To COUNT
'5秒Sleep
Sleep 5000
'セル「A1」に経過時間を入力
range("A1").Value = Format(Now - startDateTime, "c") & "秒経過"
'キーボード操作により「CTRL」を押下
SendKeys "^"
'OSに制御を戻す
DoEvents
Next
'終了日時を取得
endDateTime = Now
MsgBox "処理が完了しました!" & vbCrLf & vbCrLf & _
"開始日時:" & startDateTime & vbCrLf & _
"終了日時:" & endDateTime & vbCrLf & _
"処理時間:" & Format(Now - startDateTime, "c") & vbCrLf, _
vbOKOnly + vbInformation, "計測結果"
End Sub
シート上に「ボタン」を配置し、そのボタンに上記のVBAマクロを登録してください。
VBAマクロはボタン押下で実行させてください。
実行結果
キーボード操作を自動化できました。
キーボード操作が行われている間は、チャットアプリ(SkypeやTeams等)は離席中になりません。
最後に以下を記載したメッセージボックスが表示されます。
・開始時間
・終了時間
・処理時間
備考(SendKeysの使い方)
SendKeysの使い方については、公式サイトをご確認ください。