Internet Explorer 11 の UI がなくなった状態でコントロール API を動作させてみました

そういえば IE 11 がなくなった後の VBA コントロールなどはどんな動きをするのか。ということで、ちょっと試してみたので共有しておきたいと思います。

今回は Excel VBA で InternetExplorerMedium を呼び出し、ブラウジングを開始するというシナリオにしてみます。

まず Excel VBA を利用するために開発リボンを表示させます。

開発リボンは Excel 初期状態では表示されていないため、 Excel のオプション画面からリボンのユーザー設定を選び右上のドロップダウンがメイン タブとなっていることを確認したうえで開発にチェックを入れましょう。

f:id:mohessu:20210722000710p:plain

すると開発リボンが表示されるようになります。

ここから Visual Basic を押すと VBA を書いていくことができます。

f:id:mohessu:20210722000645p:plain

InternetExplorerMedium は Microsoft Internet Contlrols という DLL 内にあるクラスなのでツール ‐ 参照設定からこれをチェックして利用できるようにする必要があります。
f:id:mohessu:20210721023318p:plain

こんなかんじですね。

f:id:mohessu:20210721023358p:plain

あとは VBA コードを書いていく形なのですが、以下コードをそのまま貼り付けてみましょう。

https://www.microsoft.co.jphttps://www.microsoft.com/ja-jp )を開くためのコードです。

Sub IE_OpenUrl()

    Dim IE As Object
    Set IE = New InternetExplorerMedium
    IE.Visible = False
    Call IE.Navigate2("https://www.microsoft.co.jp")
    IE.Quit

End Sub

コードを書いたら、カーソルをコード内に合わせて緑の実行ボタンもしくは F5 を押していきましょう。

f:id:mohessu:20210722000744p:plain

IE 11 がないため Edge が起動しました。

f:id:mohessu:20210722000759p:plain

念のためタスクマネージャーを開いてみると、 ielowutil.exe と iexplore.exe が表示されています。 

f:id:mohessu:20210722001647p:plain

このうち iexplore.exe は一瞬で消え、 msedge.exe にバトンを渡すうごきとなっているようです。

f:id:mohessu:20210722001722p:plain

という訳で、 IE 11 がなくなっても IE 11 をベースとした仕組みは動きそうです。

が、先ほどのコード、実は表示をしない設定を行っていました。

IE.Visible = False

本来は IEブラウザーが見えない状態で動いてほしいところなのですが、 Edge 上に普通に表示されるという動きになっています。

IE 11 の EOS 対応ではこういった点を意識していく必要がありそうですね。

音楽:Pot City