初心者でもできるVBA講座【Sendkeys】

2015/10/01

はじめに

前回(入力編)、全前回(クリック編)で検索窓への入力と
ハイパーリンクのクリックができるようになったと思うので、
今回は、アクティブなウィンドウにキーボード入力をすることが
できる力技をご紹介します。

Sendkeys

コードが複雑すぎて、どうしてもタグ指定できない場合などに
Sendkeysでキーボード入力します。
形式は下記のような形で書きます。

SendKeys “test{ENTER}”   [test]と押して[Enterキー]押す
SendKeys “^a”    [ctrl]押しながら[a]

SendKeys “{UP 6}”    [↑]キー6回押した
SendKeys “{A 11}”    [A]を11回押した

コード

キーに対するコードは、暗記しなくてOKです!
下記のテーブルを見て書きましょう。

キー コード
BACKSPACE {BACKSPACE}、{BS}、または{BKSP}
BREAK

{BREAK}
CAPSLOCK

{CAPSLOCK}
DELorDELETE

{DELETE}または{DEL}
DOWNARROW

{DOWN}
END

{END}
ENTER

{ENTER}または~
ESC

{ESC}
HELP

{HELP}
HOME

{HOME}
INSorINSERT

{INSERT}または{INS}
LEFTARROW

{LEFT}
NUMLOCK

{NUMLOCK}
PAGEDOWN

{PGDN}
PAGEUP

{PGUP}
PRINTSCREEN

{PRTSC}
RIGHTARROW

{RIGHT}
SCROLLLOCK

{SCROLLLOCK}
TAB

{TAB}
UPARROW

{UP}
F1

{F1}
F2

{F2}
F3

{F3}
F4

{F4}
F5

{F5}
F6

{F6}
F7

{F7}
F8

{F8}
F9

{F9}
F10

{F10}
F11

{F11}
F12

{F12}
F13

{F13}
F14

{F14}
F15

{F15}
F16

{F16}
SHIFT

+
CTRL

^
ALT

%

※出典:microsoft

実践

Declare Function SetForegroundWindow Lib “user32” (ByVal hwnd As Long) As Long ’指定したウィンドウをアクティブウィンドウにする

Sub test()
Set IE = CreateObject(“InternetExplorer.Application”)
IE.Visible = True
IE.navigate “about:blank”        ‘IE開く

Application.Wait [Now()+”00:00:01”]  ’待機
IE.navigate “http://www.yahoo.co.jp/” ’指定のURLを開く

Application.Wait [Now()+”00:00:03″]  ’待機

SetForegroundWindow IE.hwnd ‘IEをアクティブに
Application.Wait [Now()+”00:00:02”]  ’待機
SendKeys “yahoosports{ENTER}” ‘[yahoosports]と打って[Enterキー]を押す

End Sub

上記のコードでは、下のような処理を行っている。

スタート

IEの起動

(1秒待機)
指定のURLを開く
・ヤフーのトップ画面に飛ぶ

(3秒待機)
入力できるようIEをアクティブに

(2秒待機)
検索窓に[yahoosports]と打って[Enterキー]を押す

[yahoosports]が検索される

終了

※最後に下の画面にたどり着く

最後に

この処理は、使用すること頻度はすくないですが、
困った時に是非使ってみてください!

法人向け人気レンタルサーバー
法人向け人気専用サーバー
個人向け人気レンタルサーバー