初心者でもできるVBA講座【マクロでIEを開く】
2015/09/03
はじめに
前回の【IE制御の初期設定】、前々回の【セッティング編】に引き続き、
今回は、マクロの作成、コーディングにとりかかりと思います。
が、その前にマクロを組む基本のプロシージャについて少し説明します。
プロシージャとは
プロシージャとは、処理を一つにまとめたもので、
VBAでは「Subプロシージャ」と「Functionプロシージャ」の2つがあります。
処理をまとめたプロシージャは、プログラムの中で同じような処理を何度も
行う場合に、呼び出すことができるので、同じ処理を何度も
書く必要がなくなり、修正もしやすくなります。
「Subプロシージャ」と「Functionプロシージャ」の違いは、
「Subプロシージャ」が引数を受けるのみで、
「Functionプロシージャ」は引数を受け取り、戻り値を返すことが
でき、関数としての役割を果たせます。
下記のように最初と最後を囲って一つの
プロシージャにまとめます。
書き忘れるとエラーが出て処理できません。
———————
Sub
End Sub
———————-
Function
End Function
———————-
IEを開く
それではさっそく、IEを開くコーディングして、実行してみましょう!
Dim IE As Object
‘IE(InternetExplorer)のオブジェクトを作成する
Set IE = CreateObject(“InternetExplorer.Application”)
‘IE(InternetExplorer)の表示
IE.Visible = True
‘指定したURLのページを表示
IE.navigate “http://https://rentub.com/dev/vba-ie-opne/”
End Sub
※’←アポストロフィーをつけるとコメントとして処理は行われません。
上記をモジュールにコピペしてIE開けたらOKですが、
一つ一つどういう処理を行っているのか
見ていきましょう。
変数の宣言
Dim IE As Object
メモリ領域を割り当てるDimステートメントを利用して
オブジェクト変数IEにInternetExplorer型を変数宣言しています。
これによりInternetExplorerオブジェクトを作成した際にプロパティや
メソッドを利用できるようになりました。
Q.なぜ宣言?
変数の宣言はしても、しなくても処理は行えます。
ではなぜイチイチ宣言するのか?
それは宣言をせずに処理すると
間違いをエラーで通知をしてくれません。
なのでタイプミスなどして、
処理がおかしくなっていても間違いに
気づくことが難しいのです。
絶対に間違わない人、もしくはコード一つひとつを確認して
間違い見つけ出すことができる人以外は宣言が必要となります。
VBEの[ツール]-[オプション]-[編集]タブの
[変数の宣言を強制する]チェックボックスをオンにすると設定できます。
InternetExplorerのオブジェクトを作成する
Set IE = CreateObject(“InternetExplorer.Application”)
オブジェクトを参照するSetステートメントとオブジェクトを作成する
CreateObject関数を利用してInternetExplorerのオブジェクトを作成します。
InternetExplorerの表示
IE.Visible = True
VisibleプロパティはInternetExplorerの表示・非表示の設定で、
「True」を設定してInternetExplorerの見える化してます。
指定したURLのページを表示
IE.navigate “http://https://rentub.com/dev/vba-ie-opne/”
指定したURLをInternetExplorerで表示する
InternetExplorerオブジェクトのNavigateメソッドの設定です。
完全にページが表示されるまで待機する
Do While objIE.Busy = True Or objIE.ReadyState <> 4
DoEvents
Loop
Webブラウザがページを完全に表示するまで待機する処理です。
さいごに
今回はIEを開くところまででしたが
これから業務に役立つ処理を紹介していくので、
まずは、今回のコードを自分で打ってみて
マクロを作る楽しさを実感してみてください!