教えて!ExcelVBA!

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

【ExcelVBA その他操作】他のアプリケーションにキーを送る(SendKeys)にはどうすればいいの?教えて!

f:id:m_kbou:20200418084022p:plain

Excelから他のアプリケーションにキーを送る方法について説明します。

 

 

構文

記述方法は以下の通りとなります。

SendKeys ”[送信するキー]”,True

[説明]:

他のアプリケーションにキーを送るには「SendKeys ”[送信するキー]”,True」と記述します。[送信するキー]には他のアプリケーションに送るキーを記述します。[送信するキー]は「”」(ダブルクォーテーション)で囲みます。内容を纏めると、「[送信するキー]で指定したキーを他のアプリケーションに送信して下さい。」との意味になります。また、キーボードキーに対する送信するキーの一覧を以下に添付しておきます。参考にして下さい。

f:id:m_kbou:20200316163123p:plain

[記述例]: 

SendKeys 値 & "{+}", True 

 

使い方

使い方について具体的に説明します。

[プログラミング例]:

Sub サンプル()

  '↓処理①
  Dim 値 As Integer

  '↓処理②
  Shell "CALC.EXE", vbNormalFocus

  '↓処理③
  Application.Wait Now + TimeValue("00:00:02")

  '↓処理④
  For 値 = 1 To 10
    SendKeys 値 & "{+}", True
  Next

End Sub

 内容は、
[処理①]で変数:値を指定します。
[処理②]でアプリケーション:電卓を起動します。
[処理③]で電卓が立ち上がるまでTimeValue関数を使用して2秒間停止します。
[処理④]でFor~Next文を使用して変数:値に1~10の値をセットしながら電卓に値を足し算して行きます。
との意味になります。

f:id:m_kbou:20210430165323p:plain

※上記のプログラミング例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方についてはこちらを参考にして下さい。

[実行例]:

①<実行>ボタンには上記のプログラミング例のプログラムが登録されています。この<実行>ボタンをクリックします。(※ボタンの作り方やボタンにプログラムを割り当てるにはこちらを参考にして下さい。)

f:id:m_kbou:20210430165436p:plain

②電卓が起動し、1+2+3+4+5+6+7+8+9+10=55の計算結果が表示されます。

f:id:m_kbou:20210430165448p:plain

[その他の使用例]:

その他送信キーの使用例を添付しておきます。

f:id:m_kbou:20200316163137p:plain

[サンプル]:

上記で説明したファイルをダウンロードできます。ご自由にお使い下さい。

drive.google.com

他のアプリケーションにキーを送る方法についての説明は以上です。

 

おわりに

今回は他のアプリケーションへキーを送る方法について説明しました。基本的な使い方として、Shell関数を使って他のアプリケーションを起動し、その後に今回説明したキーを送る事になります。よって、他のアプリケーションへキーを送る場合は、Shell関数とのセットで使用する事を覚えておいてもらえると良いかと思います。