ExcelマクロVBA入門 | 第121回.SendKeysメソッド | Excelマクロの基礎と応用、エクセルVBAの入門・初級・初心者向け解説



最終更新日:2013-09-04

第121回.SendKeysメソッド


キーストロークまたはキーストロークの組み合わせを、キーボードから入力したときと同様にアクティブウィンドウに渡します。

SendKeysメソッド

SendKeys string[, wait]

string 必ず指定します。転送するキー コードを表す文字列式を指定します。
wait 省略可能です。

名前付き引数 string の転送によって行われる処理が終了するまで、実行を一時中断するかどうかを次に示すブール型の値で指定します。
False(既定値) プロシージャの終了を待たずに次の行に制御を移します。
True 処理が終了するまで実行を一時中断します。


これはとても便利な機能なのですが、動作が安定しない場合も多く、使用には注意が必要です。

しかし、他の機能では実現できない場合、手操作可能なことは、これで同じことが実現できますので、そういった場合の最終手段として考えて下さい。


キーコードを表す文字

次の定数は、実際の値の代わりにコード内のどの部分でも使うことができます。

定数 内容
vbKeyLButton 0x1 マウスの左ボタン
vbKeyRButton 0x2 マウスの右ボタン
vbKeyCancel 0x3 Cancel キー
vbKeyMButton 0x4 マウスの右ボタン
vbKeyBack 0x8 BackSpace キー
vbKeyTab 0x9 Tab キー
vbKeyClear 0xC Clear キー
vbKeyReturn 0xD Enter キー
vbKeyShift 0x10 Shift キー
vbKeyControl 0x11 Ctrl キー
vbKeyMenu 0x12 Alt キー
vbKeyPause 0x13 Pause キー
vbKeyCapital 0x14 CapsLock キー
vbKeyEscape 0x1B Esc キー
vbKeySpace 0x20 Space キー
vbKeyPageUp 0x21 PageUp キー
vbKeyPageDown 0x22 PageDown キー
vbKeyEnd 0x23 End キー
vbKeyHome 0x24 Home キー
vbKeyLeft 0x25 ← キー
vbKeyUp 0x26 ↑ キー
vbKeyRight 0x27 → キー
vbKeyDown 0x28 ↓ キー
vbKeySelect 0x29 Select キー
vbKeyPrint 0x2A PrintScreen キー
vbKeyExecute 0x2B Execute キー
vbKeySnapshot 0x2C Snapshot キー
vbKeyInsert 0x2D Ins キー
vbKeyDelete 0x2E Del キー
vbKeyHelp 0x2F Help キー
vbKeyNumlock 0x90 NumLock キー

A 〜 Z キーは、ASCII コードの A 〜 Z に相当するものと同じです。

定数 内容
vbKeyA 65 A キー
vbKeyB 66 B キー
vbKeyC 67 C キー
vbKeyD 68 D キー
vbKeyE 69 E キー
vbKeyF 70 F キー
vbKeyG 71 G キー
vbKeyH 72 H キー
vbKeyI 73 I キー
vbKeyJ 74 J キー
vbKeyK 75 K キー
vbKeyL 76 L キー
vbKeyM 77 M キー
vbKeyN 78 N キー
vbKeyO 79 O キー
vbKeyP 80 P キー
vbKeyQ 81 Q キー
vbKeyR 82 R キー
vbKeyS 83 S キー
vbKeyT 84 T キー
vbKeyU 85 U キー
vbKeyV 86 V キー
vbKeyW 87 W キー
vbKeyX 88 X キー
vbKeyY 89 Y キー
vbKeyZ 90 Z キー


0 〜 9 キーは、ASCII コードの 0 〜 9 に相当するものと同じです。

定数 内容
vbKey0 48 0 キー
vbKey1 49 1 キー
vbKey2 50 2 キー
vbKey3 51 3 キー
vbKey4 52 4 キー
vbKey5 53 5 キー
vbKey6 54 6 キー
vbKey7 55 7 キー
vbKey8 56 8 キー
vbKey9 57 9 キー


次の定数は、テンキーの各キーを表します。

定数 内容
vbKeyNumpad0 0x60 0 キー
vbKeyNumpad1 0x61 1 キー
vbKeyNumpad2 0x62 2 キー
vbKeyNumpad3 0x63 3 キー
vbKeyNumpad4 0x64 4 キー
vbKeyNumpad5 0x65 5 キー
vbKeyNumpad6 0x66 6 キー
vbKeyNumpad7 0x67 7 キー
vbKeyNumpad8 0x68 8 キー
vbKeyNumpad9 0x69 9 キー
vbKeyMultiply 0x6A アスタリスク (*) キー
vbKeyAdd 0x6B プラス (+) キー
vbKeySeparator 0x6C Enter キー
vbKeySubtract 0x6D マイナス (-) キー
vbKeyDecimal 0x6E ピリオド (.) キー
vbKeyDivide 0x6F スラッシュ (/) キー


次の定数は、ファンクション キーの各キーを表します。

定数 内容
vbKeyF1 0x70 F1 キー
vbKeyF2 0x71 F2 キー
vbKeyF3 0x72 F3 キー
vbKeyF4 0x73 F4 キー
vbKeyF5 0x74 F5 キー
vbKeyF6 0x75 F6 キー
vbKeyF7 0x76 F7 キー
vbKeyF8 0x77 F8 キー
vbKeyF9 0x78 F9 キー
vbKeyF10 0x79 F10 キー
vbKeyF11 0x7A F11 キー
vbKeyF12 0x7B F12 キー
vbKeyF13 0x7C F13 キー
vbKeyF14 0x7D F14 キー
vbKeyF15 0x7E F15 キー
vbKeyF16 0x7F F16 キー



使用例

以下はヘルプにある使用例です。
実践的な使用例ではありませんが、SendKeysを理解する為の練習としては良いでしょう。

Dim ReturnValue, I
ReturnValue = Shell("CALC.EXE", 1) ' 電卓を実行します。
AppActivate ReturnValue        ' 電卓をアクティブにします。
For I = 1 To 20              ' ループ カウンタを設定します。
  SendKeys I & "{+}", True      ' 電卓にキー コードを転送して、
Next I                   ' I の値に 1 を加算します。
SendKeys "=", True           ' 和を求めます。


※注意

プリントスクリーン(PrntScr)は、SendKeysでは送れません。
プリントスクリーン(PrntScr)を送るには、APIが必要になります。

全シートの画面キャプチャを取得する(keybd_event)

こちらで使用しています。




同じテーマ「ExcelマクロVBA入門」の記事

第122回.Shell関数
第123回.APIについて(Win32API)
第124回.Workbookのイベントプロシージャー
第125回.Worksheetのイベントプロシージャー
第126回.入力規則(Validation)
第127回.他のブックのマクロを実行(Runメソッド)
第128回.マクロをショートカットで起動(OnKeyメソッド)

新着記事 ・・・新着記事一覧を見る

Excelファイルを開かずにシート名をチェック|ExcelマクロVBAサンプル集(3月23日)
数式の参照しているセルを取得する|ExcelマクロVBAサンプル集(3月18日)
CSVの読み込み方法(改の改)|ExcelマクロVBAサンプル集(3月17日)
変数とプロシージャーの命名について|ExcelマクロVBA技術解説(2月12日)
ファイルの一覧取得・削除(File)|Google Apps Script入門(1月24日)
フォルダの一覧取得・作成・削除(Folder)|Google Apps Script入門(1月24日)
フォルダとファイルを扱う(DriveApp)|Google Apps Script入門(1月24日)
スプレッドシートが非常に遅い、高速化するには|Google Apps Script入門(1月17日)
画像のトリミング(PictureFormat,Crop)|ExcelマクロVBAサンプル集(12月27日)
シート保護|Google Apps Script入門(12月24日)

アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|ExcelマクロVBA入門
2.RangeとCellsの使い方|ExcelマクロVBA入門
3.徹底解説(VLOOKUP,MATCH,INDEX,OFFSET)|エクセル関数超技
4.Range以外の指定方法(Cells,Rows,Columns)|ExcelマクロVBA入門
5.セルの参照範囲を可変にする(OFFSET,COUNTA,MATCH)|エクセル関数超技
6.セルのコピー&値の貼り付け(PasteSpecial)|ExcelマクロVBA入門
7.変数とデータ型(Dim)|ExcelマクロVBA入門
8.ひらがな⇔カタカナの変換|エクセル基本操作
9.CSVの読み込み方法|ExcelマクロVBAサンプル集
10.VBAのFindメソッドの使い方には注意が必要です|ExcelマクロVBA技術解説



  • >
  • >
  • >
  • SendKeysメソッド

  • このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


    記述には細心の注意をしたつもりですが、
    間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
    なお、掲載のVBAコードは自己責任で使ってください。万一データ破損等の損害が発生しても責任は負いません。

    ↑ PAGE TOP