ExcelでIEを起動し、狙ったページを表示するだけのプログラムを書いてみたいと思います。
IEを起動する方法
IEを起動するには、まずInternet Explorerオブジェクトを作る必要があります。
IEオブジェクトを作るというのは、「IEに直接指示を出すのが無理なので、一回別のものを嚙ませる」というような意味です。課長に直接言うと角がたつので係長から注意してもらうような感じです。
先に変数をInternetExplorer型として作っておきます。
Dim 変数名 as InternetExplorer
IE型の変数にIEを「セット」して、IEそのものとして扱えるようにします。
set 変数名 = New InternetExplorer
IEオブジェクトを主語にしてメソッド(動詞)を指定することで、IEを動かすことができます。たとえば起動は次のように書きます。
IEオブジェクト.Visible = True
visible = 「見えるようにする」なので、IEが見えるようになる=起動します。
ここまででエラーが出る場合
参照設定でMicrosoft Internet Controlsにチェックを付けるか、下記「MicroSoft Internet Controlsにチェックを付けないでIEオブジェクトを作る方法」を参照してください。
URLを指定して移動(Navigate)
特定のURLに遷移するには、IEオブジェクトに対してnavigateメソッドで移動するURLを指定してあげます。
IEオブジェクト.navigate (“URL”)
今回使ったコードは次のようになります。
' vba
Option Explicit
Dim obj As InternetExplorer
Sub test()
Set obj = New InternetExplorer
' IEを起動
obj.visible = True
' ページを遷移
obj.Navigate("https://sunagitsune.com")
End Sub
別のタブでページを開く(Navigate2)
IEオブジェクト.navigate2 “URL”, &H800
今回は先にNavigateメソッドでページを開いてから、Navigate2メソッドで新しいタブを開きます。
&H800とは16進数に直した1437です。
MicroSoft Internet Controlsにチェックを付けないでIEオブジェクトを作る方法
上記の方法ではMicroSoft Internet Controlsライブラリを参照していますが、複数のPCで同じマクロを使い回す場合や、客先に納品する場合などするたびにこのチェックを付ける必要があり不便です。
CreateObject関数を使うと、このチェックを付けずにIEオブジェクトを作ることが可能です。
具体的には上のDim obj As InternetExplorer、Set obj = New InternetExplorerの部分をそれぞれこう書き変えます。
' vba
(前略)
Dim obj
Sub test()
Set obj = CreateObject(”InternetExplorer.Application")
(後略)
コメント