ドキュメントタイトル/URLを指定してIEを取得
'ドキュメントタイトル/URLを指定してIEを取得 Public Function getIE(arg_title As String, Optional arg_url As String) As Object Dim ie As Object 'IEを格納する変数(オブジェクト型) Dim sh As Object '起動中のShellWindow一式を格納する変数 Dim win As Object 'ShellWindowを格納する変数 Dim document_title As String 'ドキュメントタイトルの一時格納変数 Set sh = CreateObject("Shell.Application") 'ShellWindowをwinsに格納 'ShellWindowから1つづつ取得して処理 For Each win In sh.windows 'ドキュメントタイトル取得失敗を無視(処理継続) On Error Resume Next document_title = "" document_title = win.document.Title On Error GoTo 0 'タイトルバーに引数が含まれるかチェック If InStr(document_title, arg_title) > 0 Then Set ie = win '変数ieに取得したwinを格納 Exit For 'ループを抜ける End If Next '見つからなかった場合 かつ URLが指定されている場合は起動する If ie Is Nothing And arg_url <> "" Then Set ie = CreateObject("InternetExplorer.Application") ie.Visible = True ie.Navigate2 (arg_url) End If Set getIE = ie '値の返却 End Function
前半は既に開かれているInternetExplorerを取得するの処理を汎用化(タイトルを引数で可変化)したもの、
後半は任意のURLに画面遷移するの処理を汎用化(URLを引数で可変化)したものの組み合わせ。
IE起動や取得の処理を関数化しておけば、メインの処理の中でCreateObjectやウィンドウ検索をしなくて済むので便利よ。
本編のサンプルコードでは、最初にこの関数を作って、各種表示/非表示制御のサンプルコードからこれを利用してIEを取得している。
後半は任意のURLに画面遷移するの処理を汎用化(URLを引数で可変化)したものの組み合わせ。
IE起動や取得の処理を関数化しておけば、メインの処理の中でCreateObjectやウィンドウ検索をしなくて済むので便利よ。
本編のサンプルコードでは、最初にこの関数を作って、各種表示/非表示制御のサンプルコードからこれを利用してIEを取得している。