いつもお世話になっております。
エクセルを使って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で実行してブラウザを立ち上げ最大化したいのですが
どうすればいいでしょうか?
ご回答よろしくお願いします。
No.2ベストアンサー
- 回答日時:
No.1です。
お礼をいただきありがとうございます。
順番を前後させるだけではだめで、FindWindow をさらに後ろの.Visible = True のあとに持って行ったらうまくいったのですか。
当方の環境はWinXPSP3, Excel2003, IE6 という古いものなのですが、
順番を前後させるだけでうまくいきました。
ソフトウェアのバージョンの違いかもしれませんね。
FindWindow を .Visible = True のあとに持って行っても大丈夫だったので、このほうがより多くの環境で動作するということですね。
ともかく、うまく動作するようになったとのことで安心しました。
再度ご回答ありがとうございます。
OSやオフィスのバージョンなどによって違ってくるようですね。
バージョンが違うと自分で検証できないので、確認していただいてありがとうございました。
No.1
- 回答日時:
ieHwnd = FindWindow("IEFrame", vbNullString) 'IEのウィンドウハンドル取得
と
Set objIE = CreateObject("InternetExplorer.Application")
の位置が逆ではないでしょうか。
つまり、最大化したいウインドウを開いてからハンドルを取得するところかと思います。
付け加えると、当方にてWindows XP SP3, Excel2003, IE6で実験した範囲では、
Call ShowWindow(ieHwnd, 3) '最大化
のところにブレークポイントを設置してもしなくても結果は同じでした。
順番を前後させて
Set objIE = CreateObject("InternetExplorer.Application")
ieHwnd = FindWindow("IEFrame", vbNullString)
にしてみましたが、、大きくなりませんでした。
しかし、
objIE.Visible = True
ieHwnd = FindWindow("IEFrame", vbNullString)
なら大きくなりました!
ご回答ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Vba Userformを前面に出すについて 3 2022/04/15 12:29
- Visual Basic(VBA) Vba LongPtrについて教えてください 2 2022/08/19 11:14
- Excel(エクセル) 【マクロ】スクショ印刷がうまく動かない件 5 2022/12/06 17:37
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) EXCEL VBAで NHK NEWSの NEWSデータ内容取得が できない 1 2023/04/09 12:26
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る バッチからEXEの結果を受け取りたいのですが、 下記のバッ 1 2023/07/04 15:13
- Visual Basic(VBA) batからexeを実行し戻り値を受け取る EXEの実行内容の結果によって、戻り値を0か1かで返したい 1 2023/07/04 16:40
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelのウィンドウが少し小さく、ズ...
-
Windows10 エクスプローラー表...
-
AccessのFormの設定で、開いた...
-
ウィンドウ閉じるボタンが隠れ...
-
ウィンドウの一番下が見られない
-
サクラエディタで、分割したウ...
-
ウィンドウの強制アクティブ化...
-
ウィンドウの縮小拡大ができま...
-
フォトショップのウィンドウが...
-
リンクを『新しいウィンドウで...
-
EXCELのウィンドウがタスクバー...
-
Access 起動時、ウィンドウを...
-
インターネットエクスプローラ...
-
UWSC 非アクティブウィンドウ...
-
Windows Media Player 10 の全...
-
Adobe Premiereでタイムライン...
-
VLCメディアプレイヤーでの拡大...
-
IE で閲覧
-
パソコンの最大化表示設定について
-
ウィンドウの大きさを戻す。
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10 エクスプローラー表...
-
Excelのウィンドウが少し小さく、ズ...
-
VLCメディアプレイヤーでの拡大...
-
サクラエディタで、分割したウ...
-
ウィンドウの一番下が見られない
-
AccessのFormの設定で、開いた...
-
UWSC 非アクティブウィンドウ...
-
ウィンドウの縮小拡大ができま...
-
Google Chrome で画面が小さく...
-
Access 起動時、ウィンドウを...
-
draftsight コマンドウィンドウ...
-
新しいウィンドウで開くときウ...
-
最小化からの再表示は? Photos...
-
リンクを『新しいウィンドウで...
-
入力した文字を電光掲示板のよ...
-
画面のサイズを「元のサイズ」...
-
ウィンドウの強制アクティブ化...
-
Google Chromeのウィンドウサイ...
-
インターネットエクスプローラ...
-
ウィンドウ閉じるボタンが隠れ...
おすすめ情報