VBA開発

物理キーを反映させる【SendKeysメソッド】

構文

SendKeys String[,Wait]

String・・・・・貼り付ける内容
Wait   ・・・・・【省略可能】True(キー操作完了するまで他の処理を待つ)
              False(キー操作完了するまで他の処理を待たない:規定値) 

特殊なキーコード

キーコード備考
Shift+他のキーと組み合わせで使用
Ctrl^他のキーと組み合わせで使用
Alt%他のキーと組み合わせで使用
BackSpace{BACKSPACE}
{BS}
{BKSP}
Break{BREAK}
CapsLock{CAPSLOCK}
Delete{DELETE} 
{DEL}
Enter~
Enter(テンキー){ENTER}
終了{END}
Esc{ESC}
ヘルプ{HELP}
ホーム{HOME}
NumLock{NUMLOCK}
PageDown{PGDN}
PageUp{PGUP}
PrintScreen{PRTSC}画面キャプチャは行えない
ScrollLock{SCROLLLOCK}
Tab{TAB}
Insert{INSERT} 
{INS}
F1{F1}
F2{F2}
F3{F3}
F4{F4}
F5{F5}
F6{F6}
F7{F7}
F8{F8}
F9{F9}
F10{F10}
F11{F11}
F12{F12}
F13{F13}
F14{F14}
F15{F15}
F16{F16}
{UP}
{RIGHT}
{LEFT}
{DOWN}

コードサンプル

Public Sub test()
    '■メモ帳を起動
    Shell "C:\Windows\Notepad.exe", 1
    
    SendKeys "SendKeyの文字列テスト", True
    
    SendKeys "~" 'Enter

'    SendKeys "{ENTER 10}" 'Enterを10回
    
    
'    SendKeys "^(A)", True 'Ctrl + A
    
'    SendKeys "^(C)", True 'Ctrl + C
    
'    SendKeys "^(X)", True 'Ctrl + V
end sub

 

使い方例

  • マクロでIE自動制御している際、ポップアップなどのOKボタンがマクロで押せなく、SendKeysで送る。
  • Windowsの郵便番号変換の為、Sendkeysで変換処理を行いたい。

注意点

  • PrintScreen はSendKeysでは使用できません。WindowsAPIで取得する必要があります。
  • 信頼性(安定性)が乏しい為、Sendkeysは多用はお勧めしません。
    基本はマクロ内のコードで完結させるようにして、SendKeysは最終手段と捉えましょう。
  • NumLockのON/OFFでキーが動作しない場合がありますので、注意しましょう。

コメント

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