役に立つか?VBAメモ

仕事で使ったVBAをメモっとく

Sendkyesが使えないんだ!

なんかいろいろあって使えないらしい。

とは言え、使いたい。

グーグル先生、おしえて!

デデデン♪

AZ_Mouse's HP♪さんの小技集から

http://www.geocities.co.jp/SiliconValley-PaloAlto/9180/exsendkeys.html

最終更新日2000年だって!動作確認もWin95/WinNT/AC97ですよ。

でも大丈夫、win10+office2013で動いてるし。

2013言ってる時点で古いしw

 

細かな説明は引用元様を御覧ください。

 

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

Public Sub gSub_ExSendKeys(uKeyCode_1 As Integer, Optional uKeyCode_2 As Variant)


If IsMissing(uKeyCode_2) Then

Call keybd_event(CByte(uKeyCode_1), 0, 0, 0)

Call keybd_event(CByte(uKeyCode_1), 0, 2, 0)
Else


Call keybd_event(CByte(uKeyCode_1), 0, 0, 0)

Call keybd_event(CByte(uKeyCode_2), 0, 0, 0)

Call keybd_event(CByte(uKeyCode_2), 0, 2, 0)

Call keybd_event(CByte(uKeyCode_1), 0, 2, 0)
End If

End Sub

 APIはさっぱりなので、書いてあるまま使います。

聞かないでください。

 

 

Outlookの仕訳ルールの実行をするにあたり、手動で一々実行するのが面倒なので、下記を作成しクイックアクセスツールバーに登録しました。

 

Sub 仕分け()

Call gSub_ExSendKeys(vbKeyMenu)
Call gSub_ExSendKeys(vbKeyControl, vbKeyO)
Call gSub_ExSendKeys(vbKeyR)
Call gSub_ExSendKeys(vbKeyR)
Call gSub_ExSendKeys(vbKeyMenu, vbKeyE)
Call gSub_ExSendKeys(vbKeyMenu, vbKeyO)

End Sub

 

フォルダーー仕訳ルールの実行ールール全選択ー実行 です。

閉じるまでやりたかったけどうまくいかなかったのはご愛嬌。

KyeCode定数は、マイクロソフトこちらを参照してください。

 

ExcelでUserFormのTextBoxのカーソルを右に動かしたかったので、探して見たのが最初でした。

キーコードが使えると捗るよ!