教えて!ExcelVBA!

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

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

       f:id:m_kbou:20200418084022p:plain

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

 

【目次】

 

構文

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

=======================================================================

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

=======================================================================

[説明]:

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

f:id:m_kbou:20200316163123p:plain

[記述例]: 

SendKeys 値 & "{+}", True 

 

使い方

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

[記述例]:

※以下の記述例は、VBE(VBA記述画面)に記述しないと実行ができません。VBEの開き方については、VBEの開き方を参考にして下さい。

-------------------------------------------------

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の値をセットしながら電卓に値を足し算して行きます。」との意味になります。

[実行例]:

※電卓で1+2+3+4+5+6+7+8+9+10=55が計算されます。

f:id:m_kbou:20200316145547p:plain

[その他の使用例]:

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

f:id:m_kbou:20200316163137p:plain

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

 

おわりに

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