プロが教えるわが家の防犯対策術!

当方 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

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

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

A 回答 (2件)

こんにちわ。



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

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
    • good
    • 0
この回答へのお礼

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

お礼日時:2013/03/06 19:44

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



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

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

お礼日時:2013/03/01 22:31

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています