【VBA】キーボード操作を自動化させて、チャットアプリ(SkypeやTeams等)を離席中にさせない

SendKeysにより
 ・キーボード操作を自動化
できます!

定期的にキーボード操作を自動化することで、
 ・チャットアプリを離席中にさせない
ようにできます!

PR

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

約30分(360回繰り返し × 5秒Sleep = 1800秒)の間、5秒毎にキーボード操作(CTRLの押下)を繰り返します。

以下は必要に応じて変更してください。
・繰り返し回数(9行目)
・Sleepさせる秒数(20行目)

シート上に「ボタン」を配置し、そのボタンに上記のVBAマクロを登録してください。
VBAマクロはボタン押下で実行させてください。

ボタンにVBAマクロを登録
ボタンにVBAマクロを登録

VBAマクロの実行中は、事故防止のためパソコンの操作をしないでください。
※CTRLの押下を自動化させているだけなので、基本的に事故は起きないと思いますが。念のため。

VBAマクロを中断させたい場合は、キーボードの「ESC」キーを押下してください。

PR

実行結果

キーボード操作を自動化できました。
キーボード操作が行われている間は、チャットアプリ(SkypeやTeams等)は離席中になりません。

実行結果①
実行結果①

最後に以下を記載したメッセージボックスが表示されます。
・開始時間
・終了時間
・処理時間

実行結果②
実行結果②
PR

備考(SendKeysの使い方)

SendKeysの使い方については、公式サイトをご確認ください。