教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

ExcelVBAでキーコードを送信する方法

構文

構文は以下の通りです。

Application.SendKeys "送信キー"

解説

Application.SendKeysは、アプリケーションに対してキーコードを転送します。以下に設定する送信キーを幾つか紹介します。

送信キー 内容(キーボード操作)
{ENTER} Enterキー
{TAB} Tabキー
{ESC} Escキー
{F2} F2キー
{F5} F5キー
{F12} F12キー
{BACKSPACE} Backspaceキー
{DELETE} Deleteキー
{INSERT} Insertキー
{LEFT} 左矢印キー
{RIGHT} 右矢印キー
{UP} 上矢印キー
{DOWN} 下矢印キー
{HOME} Homeキー
{END} Endキー
^c Ctrl + C(コピー)
^v Ctrl + V(貼り付け)
^s Ctrl + S(保存)
^z Ctrl + Z(元に戻す)
^a Ctrl + A(全選択)

プログラミング例

具体的なプログラミング例を紹介します。

Sub キーコード送信()
    'A2セルを選択
    Range("A2").Select
    'A2セルに「こんにちは」を入力
    Range("A2") = "こんにちは"
    '5秒待機
    Application.Wait (Now + TimeValue("00:00:05"))
    'セルを確定するためにEnterキーを送信
    Application.SendKeys "{ENTER}"
End Sub

上記のプログラムは、A2セルに「こんにちは」を入力し、5秒後に[Enter]キーを送信します。

まとめ

Application.SendKeysは、指定したキーの組み合わせをアクティブなウィンドウに送信するために使用します。この方法を使うと、マクロを実行している間に特定のキー操作を自動化することができます。