三流君 ken3のmemo置き場

メモ置き場、保管庫として利用。まとまっていませんがヨロシク



XXXXXさんへ VBAでIEを起動後に最小化したい

>一つ質問があります。
>Set objIE = CreateObject("InternetExplorer.application") 'IEのオブジェクトを作る
>という処理をしたあと、そのobjIEを最小化したいのですが、適切なコマンドが見当たりません。

VB API ウインドウ最小化 で検索すると、CloseWindowが見つかります。
で、その関数を呼ぶだけでOKかなぁ。。。
※単純に新規にCreateObjectで起動したIEの.hWndの値を渡しただけです。


Option Explicit

'標準モジュール 頭で忘れずに 使用するAPIの定義を入れてね。
Public Declare Function CloseWindow Lib "USER32" (ByVal hWnd&) As Long

Sub ie_test()  'IEテスト 起動後に最小化したい。

'IEの起動
    Dim objIE As Object '変数を定義します。
    Set objIE = CreateObject("InternetExplorer.Application") 'オブジェクトを作成します。
    objIE.Visible = True      '可視、Trueで見えるようにします。
    
'巡回中は最小化したい?そんな時は、
    Dim Ret As Long
    Ret = CloseWindow(objIE.hWnd)  'APIに起動したIEのウインドウハンドルを渡す
    '↑単純に.hWndの値を渡しただけです。
    
'処理したいページを表示します。
    objIE.Navigate "http://www.google.co.jp/"

'ページの表示完了を待ちます。
    While objIE.ReadyState <> 4 Or objIE.Busy = True '.ReadyState <> 4の間まわる。
        DoEvents  '重いので嫌いな人居るけど。
    Wend
    
    'google検索項目(name=q)にセットする。
    objIE.Document.getElementsByName("q")(0).Value = "三流君"

'巡回が終了したら元に戻したいのが人情だけど、今回は最小化のテストなのでそのまま放置

End Sub

無事に最小化されることを願いつつ、失礼します。 三流プログラマー Ken3