- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VBAからieが発行するmsgboxを操作)
VBAからieが発行するmsgboxを操作
このQ&Aのポイント
- EXCEL2007のvbaを使用してieを操作してます。あるie画面を自動的に閉じる際、ie画面の「戻る」を自動クリックするとMsgboxが表示され「ok」「キャンセル」を要求されとまります。
- 自動的に「ok」を押して画面を閉じたいのですが・・・・・どうすればよいのでしょうか?
- <ieソース><TD nowrap align="right" height="20" CLASS="NAVBAR" width="224"><INPUT type=image src="/Suite/AAA/BBB/CCC/Returnja_JP.gif" alt="戻る" name="btnReturn1" id="btnReturn1" height="15" onclick="javascript:returnConfirm();" border="0" haht-alt-type="NLS" width="34"></TD></TR><VBA>IE.Script.setTimeout "javascript:returnConfirm();" ,200Sleep 5000SendKeys "{ENTER}"msgboxは表示されたまま、「ENTER」が押されず次の処理に進むよろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
APIで閉じるとか。 '宣言の追加 Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr Private Declare PtrSafe Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long) Private Declare PtrSafe Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As LongPtr, ByVal wMsg As Long, ByVal wParam As LongPtr, lParam As Any) As LongPtr Const WM_COMMAND = &H111 IE.Script.setTimeout "javascript:returnConfirm();", 200 Dim hwnd As Long While hwnd = 0 DoEvents Sleep 1& hwnd = FindWindow("#32770", "Web ページからのメッセージ") Wend SendMessage hwnd, WM_COMMAND, vbOK, ByVal 0&
お礼
返信が遅れてすみません。 SendMessage hwnd, WM_COMMAND, vbOK, ByVal 0& の前に Sleep 5000 SendKeys "{ENTER}" の2行を足したら上手くいきました。 SendKeysはいらないかも?これは、テストしてみます。 結果、うまく進みましたので少し解析して前進します。 本当に助かりました。ありがとうございました。