【初めてのVBA】03. はじめてのネットサーフィン
挑戦するお題
今回挑戦するのは、Excel VBAを使ったネットサーフィンです。
エクセルで管理しているURLをWebブラウザで開くという
簡単なVBAプログラミングです。
ブログの構成
まずは余計なこと(?)をしない最低限のプログラムを解説した後に、
プログラミングらしく改良を加えたプログラムの説明をします。
- シンプルなプログラムの解説
- 改良版プログラムの解説
【目次】
シンプルなネットサーフィンプログラムの作成
まずは余計なこと(?)をしない最低限のプログラムです。
プログラムの処理の流れはこのようになってます。
1. エクセルからURLを取得
2. インターネットブラウザ(IE)でURLを表示
STEP1 エクセルファイルの準備
URLはエクセルで管理します。
今回はサンプルとして下記のようなURLを用意しました。
A列の1行目から4行目に記載しています。
STEP2 VBAでエクセルファイルの情報を取得する
STEP1で準備した情報をVBAで取得します。
まずはVBAプログラムを記載できるファイルを用意します。
(前回のブログを参照)
ファイルの準備がきたら
各セルの情報を取得するプログラムを記述します。
Rangeオブジェクトの参照
セルの情報は
Rangeオブジェクトから取得することができます。
たとえば、
A列、1行目のセルの値を取得したい場合、
Range("A1").valueと記載することでA1セルの情報を取得することができます。
正しく情報が取得できているかどうかは、
MsgBox関数を使って確認することができます。
例えば、このように記載するとA1の情報を取得できます。
Sub test()
MsgBox Range("A1").Value
End Sub
暫定的ですが、
このようにすればセルA1~セルA4までの情報を確認できます。
Sub ネットサーフィンプログラム()
MsgBox Range("A1").Value
MsgBox Range("A2").Value
MsgBox Range("A3").Value
MsgBox Range("A4").Value
End Sub
STEP3 エクセルから取得したURLをブラウザで表示する
STEP2で取得したURLをブラウザで表示させます。
A1セルのURLを表示させる場合、
このようになります。
Sub ネットサーフィンプログラム()
'--- 宣言 ---
Dim objIE As InternetExplorer
Dim myURL As String
'--- 設定 ---
Set objIE = New InternetExplorer
objIE.Visible = True
'--- A1のURLをブラウザで表示 ---
myURL = Range("A1").Value
Call objIE.Navigate2(myURL)
End Sub
プログラムを実行すると、
Internet Explolerが起動し、A1に記載していたURLが表示されるのが
確認できると思います。
なお、プログラムコード中の
シングルクオーテーションはコメントを示しており、
プログラムを読みやすくするためのメモ書きです。
プログラムを実行する際には読み飛ばされる行になります。
プログラムコードの解説
InternetExplorer型の宣言
objIEという名前でInternetExplorerタイプのデータを扱うことを宣言しています。
Dim objIE As InternetExplorer
InternetExplorerの設定
先ほど宣言したobjIEという箱に
InternetExplorerタイプのデータを設定しています。
(本当はデータというよりオブジェクトですが、気にしないでください。)
Set objIE = New InternetExplorer
InternetExplorerのVisible設定
先ほど用意したobjIE (= Internet Explorer)を表示させるかどうか設定します。
True(表示あり)に設定します。
objIE.Visible = True
Falseにした場合、
バックグラウンドでプログラムが起動します。
ただ、スクリーンに表示されないため少し厄介です。
Navigation開始
詳しい説明は省きますが、
これまで用意してきたobjIEを用いて
objIE.NAvigate2と記載すると
Internet Exploler上でURLを表示する機能を使用できるようになります。
下記のように記述してみてください。
Call objIE.Navigate2(myURL, &H800)
サンプルプログラム
サンプルプログラムを掲載します。
Sub ネットサーフィンプログラム()
'--- 宣言 ---
Dim objIE As InternetExplorer
Dim myURL As String
'--- 設定 ---
Set objIE = New InternetExplorer
objIE.Visible = True
'--- A1のURLをブラウザで表示 ---
myURL = Range("A1").Value
Call objIE.Navigate2(myURL, &H800)
'--- A2のURLをブラウザで表示 ---
myURL = Range("A2").Value
Call objIE.Navigate2(myURL, &H800)
'--- A3のURLをブラウザで表示 ---
myURL = Range("A3").Value
Call objIE.Navigate2(myURL, &H800)
'--- A4のURLをブラウザで表示 ---
myURL = Range("A4").Value
Call objIE.Navigate2(myURL, &H800)
End Sub
上記プログラムで、
エクセルで管理しているURLを
Webブラウザで開くというプログラムが動作していることを
確認できると思います。
改良版プログラム
すこし疲れたので、
次回のブログに掲載することにします。