2022年04月15日
VBScript 特定のキー押下を検知したら処理を実行するスクリプト(キー入力待ちスクリプト)
Option Explicit
Dim Excel
Dim strFunction
Dim Shift : Shift = &H10
Dim Control : Control = &H11
Dim Alt : Alt = &H12
Dim Esc : Esc = &H1B
Set Excel = CreateObject("Excel.Application")
Do While true
If CheckKey(Shift) AND CheckKey(Control) = true Then
'「Shift」+「Control」+「Alt」押下にて処理実行
If CheckKey(Alt) = true Then
' /// ボタン押下時に処理したい内容を記述 ///
'「Shift」+「Control」+「Esc」押下にて待ち受け処理終了
ElseIf CheckKey(Esc) = true Then
Exit Do
End If
End If
WScript.Sleep 100
Loop
MsgBox "キー入力待ちを終了します" ,vbSystemModal + vbExclamation
Excel.Quit
'キー判定
Function CheckKey(Key)
strFunction = "CALL(""user32.dll"", ""GetKeyState"", ""JJ"", " & key & ")"
CheckKey = (Excel.ExecuteExcel4Macro(strFunction) And &h8000) <> 0
End Function
※注1
利用するコンピュータにExcelが入っていることが条件
※注2
待ち受け処理終了時(「Shift」+「Control」+「Esc」)には同時にタスクマネージャーも起動する
Dim Excel
Dim strFunction
Dim Shift : Shift = &H10
Dim Control : Control = &H11
Dim Alt : Alt = &H12
Dim Esc : Esc = &H1B
Set Excel = CreateObject("Excel.Application")
Do While true
If CheckKey(Shift) AND CheckKey(Control) = true Then
'「Shift」+「Control」+「Alt」押下にて処理実行
If CheckKey(Alt) = true Then
' /// ボタン押下時に処理したい内容を記述 ///
'「Shift」+「Control」+「Esc」押下にて待ち受け処理終了
ElseIf CheckKey(Esc) = true Then
Exit Do
End If
End If
WScript.Sleep 100
Loop
MsgBox "キー入力待ちを終了します" ,vbSystemModal + vbExclamation
Excel.Quit
'キー判定
Function CheckKey(Key)
strFunction = "CALL(""user32.dll"", ""GetKeyState"", ""JJ"", " & key & ")"
CheckKey = (Excel.ExecuteExcel4Macro(strFunction) And &h8000) <> 0
End Function
※注1
利用するコンピュータにExcelが入っていることが条件
※注2
待ち受け処理終了時(「Shift」+「Control」+「Esc」)には同時にタスクマネージャーも起動する
この記事へのコメント
コメントを書く
この記事へのトラックバックURL
https://fanblogs.jp/tb/11359729
※ブログオーナーが承認したトラックバックのみ表示されます。
この記事へのトラックバック