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操作で分からない事があればこちらの掲示板よりご質問ください。

ExcelのVBA初心者入門

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

目次

IE操作に便利なツール

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

IEのメソッド・プロパティ

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

IE操作のVBA関数

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

IE操作のステートメント

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

IE制御のVBAコード

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

役立つVBAコード

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