こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

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

という順番にすればよいのですが、他のコードの関係もあってメッセージボックスより先にブラウザを表示させたいのです。

そんな事は可能でしょうか?
ご回答よろしくお願いします。

投稿日時 - 2013-03-01 00:13:42

QNo.7969938

困ってます

質問者が選んだベストアンサー

こんにちわ。

あちこちのサイトからの寄せ集めです。

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

投稿日時 - 2013-03-01 17:38:43

お礼

ありがとうございました。

投稿日時 - 2013-03-06 19:44:59

ANo.2

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(2)

ANo.1

例えばExcel VBAということならMsgboxの前にAppActivateすれば希望が叶うと思います。

AppActivate Application.Caption
If objIE.Document.Body.innerHTML Like "*こんにちは、*さん*" Then
i = MsgBox("別のIDでログインしています!続けますか?", vbYesNo)

投稿日時 - 2013-03-01 08:01:48

お礼

AppActivate Application.Caption
を追加してみましたが
エラーにはなりませんでしたが
やはりブラウザの後ろで表示されてしまいます

投稿日時 - 2013-03-01 22:31:17

あなたにオススメの質問