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

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

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

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

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

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

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

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

Sub hogehoge()
    MsgBox Application.Version
End Sub

バージョン番号一覧

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

マクロ実行対象のExcelVersionプロパティの戻り値
Excel 201616.0
Excel 201315.0
Excel 201014.0
Excel 200712.0
Excel 200311.0
Excel 200210.0
Excel 20009.0
Excel 978.0
Excel 957.0
Excel 5.05.0

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

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

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

Application.Version プロパティ (Excel)

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

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



星影

Tech Hunter代表。SE、スマホゲーム、HR Tech、チャットbot開発とかやってた雑多なエンジニア。最近はIoTっぽいことやってるっぽい。 ガジェット、アニメ、ゲーム、インターネットが好きなオタク。 だいたいTwitterに居ます。

コメントを残す

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