プラグインが入った別ブックに、操作用のブックからALTキーなどを送ってプラグインを、
バックグランドで操作したいのでSendKeyやkeybd_evenを使わない方法を検討しています。
<問題点>
下記コードで(学習のため)メモ帳での操作と、別ブック(Data.xlsx)の操作をトライしているのですが、メモ帳のテストでは文字を入力できましたが、ALTキーが入力できません。
エクセルのテストではいずれもできません。
どこを修正すればよいかご教授頂けますでしょうか?
VBA
1Const WM_KEYDOWN = &H100 2Const VK_MENU = &H12 3Const WM_SYSKEYDOWN = &H104 4Const VK_F = &H46 5 6Sub Main() 7Dim hApp As Long 8Dim hEdit As Long, hEdit2 As Long, Res As Long 9 10'メモ帳 11hApp = FindWindow("NotePad", vbNullString) 12hEdit = FindWindowEx(hApp, 0, "Edit", vbNullString) 13Res = PostMessage(hEdit, WM_KEYDOWN, VK_MENU, 0) 'ALT 反応なし 14Res = PostMessage(hEdit, WM_KEYDOWN, VK_F, 0) 'F 入力可能 15 16'エクセル 17hApp = FindWindow("XLMAIN", vbNullString) 18hEdit = FindWindowEx(hApp, 0, "XLDESK", vbNullString) 19hEdit2 = FindWindowEx(hEdit, 0, vbNullString, "Data.xlsx") 20Res = PostMessage(hEdit2, WM_KEYDOWN, VK_MENU, 0) 'ALT 反応なし 21Res = PostMessage(hEdit2, WM_KEYDOWN, VK_F, 0) 'F 反応なし 22 23End Sub
Wndows10/office2019
よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。