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

いつもお世話になっております。

エクセルを使ってIEのブラウザを立ち上げて
そのブラウザを最大化したいのですがうまくできません。
---------------------------------------------------------
Private Declare Function FindWindow Lib "USER32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function ShowWindow Lib "USER32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long

Sub test()
Dim objIE As Object
Dim ieHwnd As Long

ieHwnd = FindWindow("IEFrame", vbNullString) 'IEのウィンドウハンドル取得

Set objIE = CreateObject("InternetExplorer.Application")
objIE.Navigate "http://www.ocn.ne.jp/"
objIE.Visible = True

'意味なし
Do While objIE.Busy = True Or objIE.ReadyState <> 4
DoEvents
Loop

'意味なし
Application.Wait Time:=Now + TimeValue("00:00:01")

Call ShowWindow(ieHwnd, 3) '最大化

Set objIE = Nothing
End Sub
---------------------------------------------------------
をF5で実行するとブラウザは立ち上がりますが、最大化されません。

しかし、
Call ShowWindow(ieHwnd, 3) '最大化
の部分にブレークポイントを設置して、
一度止めてF5を押して実行すると、ちゃんと最大化されます。

きちんと最初から最後までF5で実行してブラウザを立ち上げ最大化したいのですが
どうすればいいでしょうか?

ご回答よろしくお願いします。

A 回答 (2件)

No.1です。



お礼をいただきありがとうございます。

順番を前後させるだけではだめで、FindWindow をさらに後ろの.Visible = True のあとに持って行ったらうまくいったのですか。

当方の環境はWinXPSP3, Excel2003, IE6 という古いものなのですが、
順番を前後させるだけでうまくいきました。
ソフトウェアのバージョンの違いかもしれませんね。
FindWindow を .Visible = True のあとに持って行っても大丈夫だったので、このほうがより多くの環境で動作するということですね。

ともかく、うまく動作するようになったとのことで安心しました。
    • good
    • 0
この回答へのお礼

再度ご回答ありがとうございます。

OSやオフィスのバージョンなどによって違ってくるようですね。
バージョンが違うと自分で検証できないので、確認していただいてありがとうございました。

お礼日時:2012/12/13 22:43

ieHwnd = FindWindow("IEFrame", vbNullString) 'IEのウィンドウハンドル取得



Set objIE = CreateObject("InternetExplorer.Application")
の位置が逆ではないでしょうか。
つまり、最大化したいウインドウを開いてからハンドルを取得するところかと思います。

付け加えると、当方にてWindows XP SP3, Excel2003, IE6で実験した範囲では、
Call ShowWindow(ieHwnd, 3) '最大化
のところにブレークポイントを設置してもしなくても結果は同じでした。
    • good
    • 0
この回答へのお礼

順番を前後させて
Set objIE = CreateObject("InternetExplorer.Application")
ieHwnd = FindWindow("IEFrame", vbNullString)
にしてみましたが、、大きくなりませんでした。

しかし、
objIE.Visible = True
ieHwnd = FindWindow("IEFrame", vbNullString)
なら大きくなりました!
ご回答ありがとうございました。

お礼日時:2012/12/12 22:44

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