<スポンサーリンク>

【簡単】VBAで既に開いているIEの任意のサイトを表示させる方法~VBA(マクロ)でIE操作

IE関係
この記事は約5分で読めます。
コピーボタン
記事のタイトルとURLをコピー
<スポンサーリンク>

既に開いているIEの任意のサイトを開きたいと思います。

VBAでIEを操作する方法はネットを検索しても、
まだ確立されきっていないように感じますので、
素人が学びながら、そこまで深堀せずに簡単に説明していきたいと思います。

スポンサーリンク

【簡単】VBAで既に開いているIEの任意のサイトを表示させる方法~VBA(マクロ)でIE操作

VBAの入門編として、まずIEの画面を表示させる必要があります。
下記コードでは、既に開いているグーグルのページを開くための
コードを記載してみました。

ダブルクリックでコピーできますのでとりあえず張り付けて実行してみてください。

グーグルの検索ページが開いている状態で実行すると
当ブログが検索されると思います。

Sub IEdisplay2()

'IEの起動
Dim objIE As Object 'IEを格納する変数(オブジェクト型)
Dim sh As Object '起動中のShellWindow一式を格納する変数
Dim win As Object 'ShellWindowを格納する変数

Dim document_title As String 'ドキュメントタイトルの一時格納変数
'起動中のShellWindow一式を変数winsに格納
Set sh = CreateObject("Shell.Application")
'ShellWindowから1つずつ取得して処理
For Each win In sh.Windows
'ドキュメントタイトル取得失敗を無視(処理継続)
On Error Resume Next
document_title = ""
document_title = win.document.Title

Debug.Print document_title

On Error GoTo 0
'タイトルバーにGoogleが含まれるかチェック
If InStr(document_title, "Google") > 0 Then
'変数ieに取得したwinを格納
Set objIE = win
'ループを抜ける
Exit For
End If
Next


    Dim A As Object
        
    For Each A In objIE.document.getElementsByTagName("INPUT") '①FOR EACH でINPUTをすべて抜き出す。
       
        If A.Name = "q" Then A.Value = "nujonoa_blog" '②IF分で入力したい要素を見つけて ③値を代入
        
    Next
    For Each A In objIE.document.getElementsByTagName("INPUT") '①FOR EACH でINPUTをすべて抜き出す。
       
        If A.Name = "btnK" Then A.Click '②IF分で入力したい要素を見つけて ③Click
        
    Next
       
    On Error GoTo 0

End Sub

重要な要素を簡単に説明

重要な要素簡単に説明していこうと思います。

Set objIE = GetObject("", "InternetExplorer.Application")objIE.Visible = True

GetObject(pathname, class)は、

GetObject(pathname, class)は、
外部のアプリケーションにアクセスする関数になっています。
今回はIEに接続するので、classに”InternetExplorer.Application”を入力しています。
これを"Word.Application"に変えるとワードが開けるなどなど
microsoftのアプリケーションにアクセスするための最初の手段となっております。

Set ○○=▲▲ 

Set ○○=▲▲ は○○を▲▲として扱うというものになり、
簡単な例を示すとでいうと、
Set C11=worksheets("sheet1").cells(1,1)とすると、
それ以降、C11は worksheets("sheet1").cells(1,1) の代わりになります。
ですので、
worksheets("sheet1").cells(1,1).value は C11.value と非常にシンプルに置き換えることができます。
今回はこれ以降、objIE を GetObject("", "InternetExplorer.Application")として取り扱います。

objIE.Visible = True

GetObject関数でIEは開いているのですが、
バックグラウンドで開いているだけになっていますので、
.visible=trueとすることで、表示をさせることができます。

objIE.Navigate "URL"

.Navigate "URL"を用いることで、任意のURLを表示させることができます。
現在はサンプルサイトを表示されるようにしておりますが、
任意のURLに置き換えていただけたらと思います。

While objIE.ReadyState <> 4 Or objIE.Busy = True DoEvents Wend

重たいサイトなどは読み込みをしないと次の動作に移れませんので、
読み込みを完了するのを待つためのコードです。

その他、VBAでIEを動かすために必要な情報をまとめています!!

コメント欄

<スポンサーリンク>
タイトルとURLをコピーしました