Internet Explorerのバージョンチェック「ieVerCheck」の解説
今回は、Internet Explorerのバージョンを確認するサブルーチンを解説していきます。
IEのバージョンを調べるのになんの役に立つのかと疑問に思われる方もいると思いますが、IEのバージョンによってサイトの挙動が異なる場合があるのです。
1例をあげるとツイッターがまさにそうです。
ツイッターはIE8以下の場合、表示されないかもしくはモバイル版に表示が切り替わります。
原因の詳細については割愛しますが、興味がある方は検索してみてください。
このようにIEのバージョンで処理の方法が変わってくる場合もありますので、意外と重要な処理になります。
Internet Explorerのバージョンチェックのサブルーチン
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
Internet Explorerのバージョンチェックのマクロ
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部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。