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操作に役立つ文字列から数字だけ抽出 >>

Excel VBAでIEを思いのままに操作できるプログラミング術 Excel 2013/2010/2007/2003対応

近田 伸矢, 植木 悠二, 上田 寛

IEのデータ収集&自動操作のプログラミング本はこの1冊だけ!IEの起動やポップアップウィンドウ、表示を制御する基本的なコードはもちろん、テキストボックスやラジオボタン、表、ハイパーリンクなどのHTML部品を制御する方法など、自動操作に欠かせないノウハウを丁寧に解説。

VBAのIE制御についてのQ&A掲示板

↑エクセルVBAのIE(InternetExplorer)操作で分からない事があればこちらの掲示板よりご質問ください^^

ExcelのVBA初心者入門

↑こちらはExcelのVBAをマスターできるよう初心者向けのエクセルVBA入門コンテンツになります^^

VBAのIE制御入門RSS

RSSフィードを登録すると最新記事を受け取ることができます。

VBAIE操作のスカイプレッスン

VBAでIE(InternetExplorer)制御の準備

【ダウンロード】IE操作に便利なツール

こちらでは、これまでに紹介したIE(InternetExplorer)操作で便利な機能をツール化しています。無償でダウンロードできますので、目的に合わせたご利用ください。

IEオブジェクトのメソッド・プロパティ

こちらでは、IE(InternetExplorer)オブジェクトのメソッド・プロパティをまとめています。

IE操作に利用されているVBA関数

こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたVBA関数をまとめています。

IE操作に利用されているステートメント

こちらでは、エクセルVBAのIE(InternetExplorer)操作で利用されたステートメントをまとめています。ExcelのVBAで基本的な部分になりますので、しっかり理解しましょう。

IE(InternetExplorer)制御のVBAコード

こちらでは、これまでに作成したIE(InternetExplorer)操作で役立つサブルーチンをまとめています。
全てをコピーする必要はありませんが、目的に合わせたサブルーチンをご利用ください。

ExcelのVBAで作成した役立つVBAコード

こちらでは、IE(InternetExplorer)制御の利用だけでなく、Excel全般で利用できるVBAコードです。エクセルVBAで役に立つものばかりですので、ご利用ください。