たま氏の覚え書き

KNIME・AccessVBA・Swift等、学習したことを覚え書き

AccessVBA_Microsoft Libraryその3【オートメーション】InternetExplorer(IE)との連携

オートメーション(旧:OLEオートメーション)によりIEと連携

InternetExplorerと連携

IEを、Accessから操作する
この場合、オートメーションサーバがIE、オートメーションクライアントがAccessとなる

事前バインディングで参照

参照設定で「Microsoft Internet Controls」を選択 *1

書式その1:
Dim オブジェクト変数 As InternetExplorer
Set オブジェクト変数 = New InternetExplorer

書式その2:
Dim オブジェクト変数 As New InternetExplorer

▼記述例▼

    Dim IEInfo As New InternetExplorer


実行時(遅延)バインディングで参照

書式:
Dim オブジェクト変数 As Object
Set オブジェクト変数 = CreateObject(InternetExplorer.Application)

▼記述例▼

    Dim ExcelInfo As Object
    Set IEInfo = CreateObject(InternetExplorer.Application)


【InternetExplorer】のプロパティ

Visible ブラウザを表示するかどうかTrue/Falseで指定
Busy Webページが読み込み中かどうかTrue/Falseで返す
ReadyState (基本Busyプロパティとペアで使用)ページが完全に読み込まれる状態を示す
 →詳しくは以下のサイトで確認
 ▼よくわかる詳細情報▼
 InternetExplorerのReadyStateプロパティ | IE操作の自動化

Document 指定したドキュメントを返す
 →詳しくは以下のサイトで確認
 ▼よくわかる詳細情報▼
 InternetExplorerのDocumentプロパティ | IE操作の自動化

【InternetExplorer】のメソッド

Navigate 指定したURLをIEで表示
Quit IEを閉じる

【実践】InternetExplorerで指定したページを開く記述例

ブログ「たま氏の覚え書き」のトップページの内容をメッセージボックスで表示
※開く対象のページはブラウザで表示する

▼記述例▼

Sub test_IE()

    Dim IEInfo As New InternetExplorer
    
    IEInfo.Visible = True
    IEInfo.Navigate "https://tama-shi.hatenadiary.com/"
    
    Do While IEInfo.Busy 'Webページが読み込まれる(Trueになる)までループ
        DoEvents '処理を途中で止めてOSに処理を渡すための関数
    Loop
    
    Do While IEInfo.Document.ReadyState <> "complete" 'ReadyStateの5段階中の5になるまで待機
        DoEvents '処理を途中で止めてOSに処理を渡すための関数
    Loop
    
    MsgBox IEInfo.Document.body.innertext
    
    IEInfo.Quit
    Set IEInfo = Nothing
    
End Sub


▼処理結果▼
ブログ開設当初に設定したcssのソースも表示されちゃった…なんだっけこれ…
まぁ…個人的にはIEつかってないのだけれど…IE利用のニーズもあるかもしれないし、まぁ、いいのか



【余談】onedriveの利用について

win11を使用しているのだが、デフォルトの設定で
onedriveの「デスクトップ」と、PCのローカルの「デスクトップ」の、2種類が存在していたこと
意図せずにonedriveのデスクトップフォルダにファイルを保存していたことに、今日きづいた
ファイルはPCのHDDに保存されるように設定を変更してonedriveはアンインストールした
このまま使いつづけても、onedriveの容量がいっぱいなのか、PC自体の容量がいっぱいなのか、みわけつかないし…
...ていうか、こういうデフォルトの設定って、あんまりよくないとおもうんだけどなぁ…

▼参考記事▼
www.eripyon.com

以下脚注

*1:※「Microsoft Internet Controls」ライブラリがない場合
 対処1_Microsoft Browser Helpersにチェックを入れる
 対処2_「参照」ボタンを押下→C:\Windows\System32\shdocvw.dll を選択

▼対処2で指定するファイル▼