EXCEL VBA キーボードの操作・自動操作・操作方法・キー操作の自動化(SendKeysステートメント)

 

 

EXCEL VBA キーボードの操作・自動操作・操作方法・キー操作の自動化(SendKeysステートメント)

 

 

 ●はじめに

今回説明するのは、EXCEL VBAでキーボード操作を行うSendKeysステートメントの利用方法を説明いたします。キーボードから入力したかのように、キーボードの文字やエンターキー・CTRL+Cなども同時操作する事ができます。他のアプリケーションを操作するときや別のアプリケーションへデータを転記する時などに利用する事ができると思います。キーボード操作するには、操作対象がアクティブウィンドウ状態にする必要があります。それでは、サンプルプログラムを交えて順番に説明いたします。

 

●【EXCEL VBA マウスの操作・自動操作・操作方法・クリック・ダブルクリック・マウスポインターの位置指定、下記を参照して下さい】

EXCEL VBA マウスの操作・自動操作・操作方法・クリック・ダブルクリック・マウスポインターの位置指定

●【SendKeysステートメントについては、下記を参照して下さい】(Microsoft社 様)】
https://docs.microsoft.com/ja-jp/office/vba/language/reference/user-interface-help/sendkeys-statement

 

 

 

 ●書式の説明 (キーボード操作)

● SendKeysステートメントを利用するには、下記の通りに設定を行います。

 SendKeys string , [Wait]

String ・・・キーボード操作するキー「文字列式」を設定する。
Wait ・・・省略可能 Ture・・・処理が終了するまで実行を一時中断します。
False・・・プロシージャの終了を待たずに次の行に制御を移します。
既定値は、False

● キーボード操作するキー一覧

キーコード
Windowsキー^{ESC}
Enterキー(エンター){ENTER} または ~
BackSpaceキー{BACKSPACE}、{BS}、または {BKSP}
Breakキー{BREAK}
Del または Deleteキー{DELETE} または {DEL}
↑(上){UP}
↓(下){DOWN}
←(左){LEFT}
→(右){RIGHT}
Ins または Insertキー{INSERT} または {INS}
CapsLockキー(キャプスロック){CAPSLOCK}
Endキー(終了){END}
Escキー(エスケープ){ESC}
ホームキー{HOME}
NumLockキー(ナムロック){NUMLOCK}
PageDownキー(ページダウン){PGDN}
PageUpキー(ページアップ){PGUP}
PrintScreenキー(プリントスクリーン){PRTSC}
ScrollLockキー(するロールキー){SCROLLLOCK}
Tabキー(タブ){TAB}
F1キー
F2キー
F3キー
F4~16キー
{F1}
{F2}
{F3}
以降{4~16}

● 組み合わせキーの一覧

キーコード
Shiftキー(シフト)+
Ctrlキー(コントロール)^
Altキー(オルト)%
←「左」を10回押す{LEFT 10}
「A」キーを5回押す{a 10}
Ctrl+「C」キーを同時押し(コピー)^(c)
Ctrl+「v」キーを同時押し(ペースト)^(v)
Shiftキーを押しながら+「A」キー「B」キーを押す+(ab)
ABCと文字入力ABC
変数と記号を入力
Iが変数と+を押す
Iが変数の場合
I & "{+}

【使用例】

 

 

【注意点】

① SendKeysステートメントを実行する際には、実際にキーボード操作する。画面を最前面にする必要があります。
例)EXCEL画面の指定したシート(Sheet1)のセル「A1」を選択

 

② SendKeysステートメントを使用してアプリケーション等を操作する時に、アプリケーション起動までに、時間を要する時や処理に時間がかかる時は、プログラムを一時的に停止する処理を組み入れる必要があります。

例)プログラムを一時的に5秒停止する方法

※TimeSerial(時,分,秒)で表しています。

 

 

 

 

EXCEL VBA キーボードの操作・キー操作の自動化(SendKeysステートメント)

 

 

 ●プログラム説明 (サンプル①) (SendKeysステートメント)

下記のサンプルプログラムは、SendKeysステートメントを利用したキーボード操作を自動化する方法の説明をいたします。下記のサンプルプログラムは、セル「A1」に登録されている文字列をキーボード操作(SendKeysステートメント)でコピーしてカーソル移動して貼り付ける動作を自動化するサンプルプログラムです。

 

 

【プログラムの流れ】
① EXCELブックのワークシート(Sheet1)をアクティブにします。
② ワークシート(Sheet1)のセル「A1」を選択します。
③ セル「A1]に登録されている「この文字をコピーします。」をキーボード操作(Ctrl+C)でコピーします。
④ キーボード操作で↓矢印キーで2回押します。セル(A1)⇒(A3)へ移動
⑤ セル「A3」の位置に移動して、キーボード操作(Ctrl+V)でコピーした文字列を貼り付けます。
⑥ キーボード操作で↓矢印キーで2回押します。セル(A3)⇒(A5)へ移動
⑦ セル「A5」の位置に移動して、キーボード操作(Ctrl+V)でコピーした文字列を貼り付けます。


【プログラム実行条件】

・ワークシート「Sheet1」のセル「A1」に文字列を入力する。

★【サンプルプログラム】
下記のリンク先よりサンプルプログラムをダウンロードする事ができます。
● SendKeys01A(サンプルプログラム)

 

 

 

 

 

●実行前~実行後 ※プログラム実行後、キーボード操作(自動化)でセル「A1」の文字列をコピーして、セル「A3・A5」へ文字列を貼り付ける事が出来ました。
(画面クリックして拡大)

 

 

 

 

 

EXCEL VBA キーボードの操作・アプリケーションソフトの操作・電卓アプリの操作・キー操作の自動化(SendKeysステートメント)

 

 

 ●プログラム説明 (サンプル②)

下記のサンプルプログラムは、アプリケーションソフト(電卓アプリ)を起動して、SendKeysステートメントを利用してアプリを操作するサンプルプログラムです。SendKeysステートメントを利用する事で、ちょっとしたアプリ操作も行う事ができます。それでは、順番に説明いたします。

キー操作内容「 1+2+3+4+5+5+6+7+8+9+10 」と電卓アプリへキー入力しますので、結果55が計算されます。

 

 

【プログラムの流れ】
① Windowsの電卓アプリを起動させます。
② 電卓アプリが起動するまで、3秒間一時的にプログラムを停止します。
③ 電卓アプリへキー入力する数値(1~10)を繰り返します。
④ SendKeysステートメントでキー入力する数値と「+」を入力します。(キーボード操作)
⑤ キー入力後、1秒間プログラムを停止します。※1秒間隔をあける事で、アプリへのキー入力が正しく行えます。
⑥ 電卓アプリ加算する数値が10まで繰り返します。

★【サンプルプログラム】
下記のリンク先よりサンプルプログラムをダウンロードする事ができます。
● SendKeys01A(サンプルプログラム)

 

 

 

 

 ●実行前~実行後 ※プログラム実行後、電卓アプリが起動して、電卓アプリに対してSendKeysステートメントを使い1+2+3+・・・のキー入力操作を自動的に行い、電卓アプリにて計算結果(55)が表示されました。
(画面クリックして拡大)

 

 

EXCEL VBA キーボードの操作・アプリケーションソフトの操作・メモ表アプリの操作・キー操作の自動化(SendKeysステートメント)

 

 

 ●プログラム説明 (サンプル③)

下記のサンプルプログラムは、アプリケーションソフト(メモ帳アプリ)を起動してSendKeysステートメントを利用してアプリを操作するサンプルプログラムです。SendKeysステートメントを利用する事で、様々なアプリ操作も行う事ができます。それでは、順番に説明いたします。

キー操作内容「 1,2,3,4,5,6,7,8,9,10・・・・100,」を順番にキー操作(自動)する事で、メモ帳アプリ数値が記入されました。

【プログラムの流れ】

① Windowsのメモ帳アプリを起動します。
② メモ帳アプリが起動するまで、3秒間一時的にプログラムを停止します。
③ メモ帳アプリへ数値を入力します。入力する数値は、1~100まで繰り返します。(縦10×横10の間隔で数値をメモ帳アプリへ転記します。)
④ SendKeysステートメントでキー入力する数値と「,」区切り文字としてカンマを入力します。
⑤ 入力する数値を加算+1します。
⑥ 数値を10回入力したら改行します。(キーボード操作:エンターキー)

★【サンプルプログラム】
下記のリンク先よりサンプルプログラムをダウンロードする事ができます。

● SendKeys01A(サンプルプログラム)

 

 

 

 

 

 ●実行前~実行後 ※プログラム実行後、メモ帳アプリが起動して、メモ帳アプリに対してSendKeysステートメントを使い1~100・・・のキー入力操作を自動的に行い、1,2,3,4,~100,をキー操作(自動化)にてメモ帳アプリにて表示する事が出来ました。
(画面クリックして拡大)

 

 

 

 

EXCEL VBA キーボードの操作・アプリケーションソフトの操作・ペイントアプリの操作・キー操作の自動化(SendKeysステートメント)

 

 

 ●プログラム説明 (サンプル④)

下記のサンプルプログラムは、アプリケーションソフト(ペイントアプリ)を起動してSendKeysステートメントを利用してアプリを操作するサンプルプログラムです。今回は、EXCELにある表をコピーしたものをペイントアプリへ画像として貼り付けます。それでは、順番に説明いたします。

キー操作内容「 CTRL+V」・・選択範囲をコピーしたEXCEL表の内容をペイントアプリへ画像データとして貼り付けます。

 

【プログラムの流れ】
① EXCEL のワークシート「Sheet1」をアクティブにします。
② ワークシート「Sheet1」セル「D15」を起点にEXCELの表をコピーします。
③ Windowsのペイントアプリを起動します。
④ ペイントアプリが起動するまで、3秒間一時的にプログラムを停止します。
⑤ ペイントアプリを起動して、EXCELでコピーした表をペイントアプリへ貼り付けます。(キーボード操作:CTRL+V)

★【サンプルプログラム】
下記のリンク先よりサンプルプログラムをダウンロードする事ができます。

● SendKeys01A(サンプルプログラム)

 

 

 

 

 

 

 ●実行前~実行後 ※プログラム実行後、EXCELの表の範囲が選択コピーされて、ペイントアプリが起動してペイントアプリへEXCELの表が画像として貼り付けられました。
(画面クリックして拡大)

 

 

最後まで、ご覧いただきまして誠に有難うございました。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。