VBAでExcelのバージョン番号を取得する

VBAのマクロを使用する場合、Excelのバージョンによっては、マクロの動作に違いが生じることがあります。
複数バージョンのExcelが混在するような環境では、マクロを実行する前にExcelのバージョンを取得し、分岐処理を入れるのが良いでしょう。

バージョンによる動作の違い

VBAのマクロを使用する場合、Excelのバージョンによってはマクロの動作に違いが生じることがあります。

たとえばExcel 2007以降で追加されたプロパティは、Excel 2003以下では認識できません。使用する関数によっては引数が変更されている場合もあります。

つまり上位バージョンでは正常動作するコードが下位のバージョンでは動作しない可能性があるのです。

複数バージョンのExcelが混在するような環境では、マクロを実行する前にExcelのバージョンを取得し分岐処理を入れるのが良いでしょう。

Excelのバージョン番号の取得方法

ExcelのバージョンはApplicationオブジェクトのVersionプロパティで取得できます。

<br />
Sub homuhomu()<br />
    MsgBox Application.Version<br />
End Sub<br />

バージョン番号一覧

バージョン毎のVersionプロパティの戻り値は、以下のようになります。

マクロ実行対象のExcel Versionプロパティの戻り値
Excel 2016 16.0
Excel 2013 15.0
Excel 2010 14.0
Excel 2007 12.0
Excel 2003 11.0
Excel 2002 10.0
Excel 2000 9.0
Excel 97 8.0
Excel 95 7.0
Excel 5.0 5.0
Versionプロパティの戻り値は文字列型

Versionプロパティの戻り値は文字列型です。

Microsoft Excel のバージョン番号を表す文字列型 (String) の値を返します。

Application.Version プロパティ (Excel)

実際に使用する場合は、数値型に変換して扱うのが良いと思います。
関数化しちゃうと楽かな。

<br />
' Excelのバージョン番号を取得し、数値に変換して返す<br />
Function GetAppVer() As Interger<br />
    GetAppVersion = CInt(Application.Version)<br />
End Function<br />

星影

Tech Hunter代表。
ガジェット、アニメ、ゲームが好きなオタクプログラマ。
レビューズ公認レビュアー。各種アンバサダー活動もしてます。

コメントを残す

メールアドレスが公開されることはありません。