いつもお世話になっております。
エクセルを使って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ランキング
-
Windows10 エクスプローラー表...
-
Excelのウィンドウが少し小さく、ズ...
-
UWSC 非アクティブウィンドウ...
-
VisualStudioデザイン画面
-
draftsight コマンドウィンドウ...
-
AccessのFormの設定で、開いた...
-
ウィンドウの縮小拡大ができま...
-
インターネットエクスプローラ...
-
Jane Styleのウィンドウ最小化...
-
ウィンドウの一番下が見られない
-
VLCメディアプレイヤーでの拡大...
-
Google Chrome で画面が小さく...
-
新しいウィンドウで開くときウ...
-
IE 画面が下にずれてもどらない
-
ウィンドウ閉じるボタンが隠れ...
-
ネット閲覧時にwindow枠の固定...
-
Access 起動時、ウィンドウを...
-
リンクを『新しいウィンドウで...
-
イラストレーター「レイヤー表...
-
エクセル 表示画面がおかしい
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Windows10 エクスプローラー表...
-
Excelのウィンドウが少し小さく、ズ...
-
VLCメディアプレイヤーでの拡大...
-
サクラエディタで、分割したウ...
-
ウィンドウの一番下が見られない
-
AccessのFormの設定で、開いた...
-
UWSC 非アクティブウィンドウ...
-
ウィンドウの縮小拡大ができま...
-
Google Chrome で画面が小さく...
-
Access 起動時、ウィンドウを...
-
draftsight コマンドウィンドウ...
-
新しいウィンドウで開くときウ...
-
最小化からの再表示は? Photos...
-
リンクを『新しいウィンドウで...
-
入力した文字を電光掲示板のよ...
-
画面のサイズを「元のサイズ」...
-
ウィンドウの強制アクティブ化...
-
Google Chromeのウィンドウサイ...
-
ウィンドウ閉じるボタンが隠れ...
-
インターネットエクスプローラ...
おすすめ情報