Learn how to display a MessageBox in front of an IE browser window using vbApplicationModal.
If you want to show a MessageBox in front of an IE browser window instead of behind it, you can use the vbApplicationModal option when calling the MsgBox function.
By adding the vbApplicationModal option, the MessageBox will be displayed in front of the browser window, allowing the user to interact with it.
IEブラウザよりmsgboxを手前に表示したい
当方 IE9+2007です。
Sub yahoo()
Dim objIE As Object
Dim i As Long
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Visible = True
objIE.Navigate "http://www.yahoo.co.jp/"
Do Until objIE.Busy = False And objIE.ReadyState = 4: Loop
If objIE.Document.Body.innerHTML Like "*こんにちは、*さん*" Then
i = MsgBox("別のIDでログインしています!続けますか?", vbYesNo + vbApplicationModal)
If i = 7 Then End
End If
End Sub
このような事がやりたいのですが、
IEブラウザを立ち上げてメッセージボックスをvbApplicationModalで表示させても
ブラウザより裏側で表示されてしまいます。
If objIE.Document.Body.innerHTML Like "*こんにちは、*さん*" Then
i = MsgBox("別のIDでログインしています!続けますか?", vbYesNo + vbApplicationModal)
If i = 7 Then End
End If
objIE.Visible = True
という順番にすればよいのですが、他のコードの関係もあってメッセージボックスより先にブラウザを表示させたいのです。
そんな事は可能でしょうか?
ご回答よろしくお願いします。
こんにちわ。
あちこちのサイトからの寄せ集めです。
Option Explicit
Public Declare Function MessageBox Lib "user32.dll" Alias "MessageBoxA" (ByVal hwnd As Long, ByVal lpText As String, ByVal lpCaption As String, ByVal uType As Long) As Long
Public Const MB_OK = &H0 'OKボタン
Public Const MB_TOPMOST = &H40000 '最前面フラグ
Public Const MB_YesNo = 4 'はい いいえ
Public Const MB_DefaultButton2 = 256
sub test
.
lpText = "別のIDでログインしています!続けますか"
lpCaption = "最前面Msgbox"
If MessageBox(0, lpText, lpCaption, MB_YesNo Or MB_DefaultButton2 Or MB_TOPMOST) = vbYes Then
'データの処理
End If
例えばExcel VBAということならMsgboxの前にAppActivateすれば希望が叶うと思います。
AppActivate Application.Caption
If objIE.Document.Body.innerHTML Like "*こんにちは、*さん*" Then
i = MsgBox("別のIDでログインしています!続けますか?", vbYesNo)
お礼
ありがとうございました。