VBAのIE(InternetExplorer)制御で役立つInternet Explorerのバージョンをチェックする方法について解説しています。
今回は、Internet Explorerのバージョンを確認するサブルーチンを解説していきます。
IEのバージョンを調べるのになんの役に立つのかと疑問に思われる方もいると思いますが、IEのバージョンによってサイトの挙動が異なる場合があるのです。
1例をあげるとツイッターがまさにそうです。
ツイッターはIE8以下の場合、表示されないかもしくはモバイル版に表示が切り替わります。
原因の詳細については割愛しますが、興味がある方は検索してみてください。
このようにIEのバージョンで処理の方法が変わってくる場合もありますので、意外と重要な処理になります。
Function ieVerCheck() As Integer
Set objIEA = CreateObject("InternetExplorer.Application")
Set objSFO = CreateObject("Scripting.FileSystemObject")
ieVerCheck = Val(objSFO.GetFileVersion(objIEA.FullName))
Set objIEA = Nothing
Set objSFO = Nothing
End Function
※ドラッグ(スワイプ)すると全体を確認できます。
Sub sample()
If ieVerCheck > 8 Then
Debug.Print "IEのバージョンは9以上です。"
Else
Debug.Print "IEのバージョンは8以下です。"
End If
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
■バージョン9以上の場合
IEのバージョンは9以上です。
■バージョン8以下の場合
IEのバージョンは8以下です。
今回は、値を取得するために戻り値が必要となりますのでfunctionマクロで対応しています。引数はありません。
それでは、1つずつコードを見ていきましょう。
Set objIEA = CreateObject("InternetExplorer.Application")
Set objSFO = CreateObject("Scripting.FileSystemObject")
※ドラッグ(スワイプ)すると全体を確認できます。
まず、「InternetExplorerオブジェクト」「FileSystemObjectオブジェクト」を生成します。
「FileSystemObjectオブジェクト」は、ファイルやフォルダ(ディレクトリ)を操作するための機能です。
ieVerCheck = Val(objSFO.GetFileVersion(objIEA.FullName))
※ドラッグ(スワイプ)すると全体を確認できます。
次に「FullNameプロパティ」で実行ファイル(Internet Explorer)のフルパスを取得します。
そして「GetFileVersionメソッド」は、実行ファイル(Internet Explorer)のバージョン情報を取得するためのもので、IEのバージョン情報を取得し「ieVerCheck」変数に格納します。
Set objIEA = Nothing
Set objSFO = Nothing
※ドラッグ(スワイプ)すると全体を確認できます。
最後にオブジェクトを開放し、値を渡して完了となります。
また、別な方法としてDocumentオブジェクトのdocumentModeプロパティを利用する方法があります。documentModeプロパティは、 ブラウザで使用されているモードを返すプロパティで、IE11なら11を、IE10なら10を返します。
何もモードを触らなければ、IEのバージョンそのものを返しますので、簡単にバージョンを調べることができます。
Sub Sample()
Dim objIE As InternetExplorer
Call ieView(objIE, "http://www.vba-ie.net/")
msgBox objIE.document.documentMode
End Sub
※ドラッグ(スワイプ)すると全体を確認できます。
ただし、こちらを利用するには注意が必要です。1つは、!DOCTYPEのDOCTYPE宣言がないページの場合は、IE8だたとしてもIE5モードでページを表示されますので、正しいバージョンを取得することができません。もう1つは意図的にモードを変更している場合です。ホームページを作成している方ならよく利用するかと思いますが、IEバージョン毎の表示を確認するために開発ツールなどを利用してIEのバージョン毎に確認していきます。documentModeプロパティはそのときのモードを取得するプロパティですので、IE8モードの場合は8をIE5モードの場合は5を返します。もちろん確認作業とIE操作を同時に行うということはないかと思いますが、覚えておいてください。
次の記事: VBAでIE操作に役立つ文字列から数字だけ抽出 >>
近田 伸矢, 植木 悠二, 上田 寛
IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。
↑VBAのIE操作で分からない事があればこちらの掲示板よりご質問ください。
ExcelのVBA初心者入門↑こちらはVBAをマスターできるよう初心者向けのエクセルVBA入門コンテンツになります。
こちらでは、これまでに紹介したIE(InternetExplorer)操作で便利な機能をツール化しています。無償でダウンロードできますので、目的に合わせたご利用ください。
こちらでは、IE(InternetExplorer)オブジェクトのメソッド・プロパティをまとめています。
こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたVBA関数をまとめています。
こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたステートメントをまとめています。ExcelのVBAで基本的な部分になりますので、しっかり理解しましょう。
こちらでは、これまでに作成したIE(InternetExplorer)操作で役立つサブルーチンをまとめています。
全てをコピーする必要はありませんが、目的に合わせたサブルーチンをご利用ください。
こちらでは、IE(InternetExplorer)制御の利用だけでなく、Excel全般で利用できるVBAコードです。エクセルVBAで役に立つものばかりですので、ご利用ください。