<Excel, VBA> キー操作をシュミレート

キーボードkeyboardのキーkeyを実行する。

keybd_eventを使うらしい。

Public Declare Sub keybd_event Lib "user32" ( _
  ByVal bVk As Byte, _
  ByVal bScan As Byte, _
  ByVal dwFlags As Long, _
  ByVal dwExtraInfo As Long)

'bVk:        Keycode
'bScan:      Scancode、常に0
'dwFlags:    0:キーを押す / 1:0xE0を追加 / 2:キーを放す
'dwExtraInfo:常に0

Const EXTENDED_KEY = &H1  '押す > dwFlagsに入れる
Const KEYUP = &H2          '放す > dwFlagsに入れる

で、

Function open_office_clipboard()

  keybd_event vbKeyMenu, 0, 0, 0
  keybd_event vbKeyH, 0, 0, 0
  keybd_event vbKeyF, 0, 0, 0
  keybd_event vbKeyO, 0, 0, 0
  keybd_event vbKeyMenu, 0, KEYUP, 0
  keybd_event vbKeyH, 0, KEYUP, 0
  keybd_event vbKeyF, 0, KEYUP, 0
  keybd_event vbKeyO, 0, KEYUP, 0

End Function

とすると、
ALT 押す
H  押す
F  押す
O  押す
ALT 放す
H  放す
F  放す
O  放す

を呼び出すことになり、クリップボードを出せる。

キーコードkeycodeは下記。

F1~F16

Button KeyCode vbKey
F1 112 vbKeyF1
F2 113 vbKeyF2
F3 114 vbKeyF3
F4 115 vbKeyF4
F5 116 vbKeyF5
F6 117 vbKeyF6
F7 118 vbKeyF7
F8 119 vbKeyF8
F9 120 vbKeyF9
F10 121 vbKeyF10
F11 122 vbKeyF11
F12 123 vbKeyF12
F13 124 vbKeyF13
F14 125 vbKeyF14
F15 126 vbKeyF15
F16 127 vbKeyF16

0~9

Button KeyCode vbKey
0 48 vbKey0
1 49 vbKey1
2 50 vbKey2
3 51 vbKey3
4 52 vbKey4
5 53 vbKey5
6 54 vbKey6
7 55 vbKey7
8 56 vbKey8
9 57 vbKey9

0~9(テンキー)

Button KeyCode vbKey
0 96 vbKeyNumpad0
1 97 vbKeyNumpad1
2 98 vbKeyNumpad2
3 99 vbKeyNumpad3
4 100 vbKeyNumpad4
5 101 vbKeyNumpad5
6 102 vbKeyNumpad6
7 103 vbKeyNumpad7
8 104 vbKeyNumpad8
9 105 vbKeyNumpad9
* 106 vbKeyMultiply
+ 107 vbKeyAdd
Enter 108 vbKeySeparator
- 109 vbKeySubtract
. 110 vbKeyDecimal
/ 111 vbKeyDivide

A~Z

Button KeyCode vbKey
A 65 vbKeyA
B 66 vbKeyB
C 67 vbKeyC
D 68 vbKeyD
E 69 vbKeyE
F 70 vbKeyF
G 71 vbKeyG
H 72 vbKeyH
I 73 vbKeyI
J 74 vbKeyJ
K 75 vbKeyK
L 76 vbKeyL
M 77 vbKeyM
N 78 vbKeyN
O 79 vbKeyO
P 80 vbKeyP
Q 81 vbKeyQ
R 82 vbKeyR
S 83 vbKeyS
T 84 vbKeyT
U 85 vbKeyU
V 86 vbKeyV
W 87 vbKeyW
X 88 vbKeyX
Y 89 vbKeyY
Z 90 vbKeyZ

その他のボタン

Button KeyCode vbKey
BackSpace 8 vbKeyBack
Tab 9 vbKeyTab
Enter 13 vbKeyReturn
Shift 16 vbKeyShift
Ctrl 17 vbKeyControl
Alt 18 vbKeyMenu
Pause 19 vbKeyPause
Esc 27 vbKeyEscape
変換 28
無変換 29
スペース 32 vbKeySpace
PgUp 33 vbKeyPageUp
PgDown 34 vbKeyPageDown
Home 36 vbKeyHome
37 vbKeyLeft
38 vbKeyUp
39 vbKeyRight
40 vbKeyDown
Ins 45 vbKeyInsert
Del 46 vbKeyDelete
Win 91
ポップアップ 93
NumLock 144 vbKeyNumlock
: 186
; 187
, 188
- 189
. 190
/ 191
@ 192
[ 219
\ 220
] 221
^ 222
226
[ツール]-[マクロ]->[Visual Basic Editor]
[表示]-[オブジェクトブラウザ]->[keycode]

お勉強したとこ。

面白きこともなき世を面白く 【VB6】 キーをシミュレートするAPI keybd_event

atsu96.seesaa.net