【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秒)の間、キーボード操作(CTRLの押下)を繰り返します。

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

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

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

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

PR

実行結果

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

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

PR

備考(SendKeysの使い方)

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

タイトルとURLをコピーしました