バージョンによる動作の違い
VBAのマクロを使用する場合、Excelのバージョンによってはマクロの動作に違いが生じることがあります。
たとえばExcel 2007以降で追加されたプロパティは、Excel 2003以下では認識できません。使用する関数によっては引数が変更されている場合もあります。
つまり上位バージョンでは正常動作するコードが下位のバージョンでは動作しない可能性があるのです。
複数バージョンのExcelが混在するような環境では、マクロを実行する前にExcelのバージョンを取得し分岐処理を入れるのが良いでしょう。
Excelのバージョン番号の取得方法
ExcelのバージョンはApplicationオブジェクトのVersionプロパティで取得できます。
Sub hogehoge() MsgBox Application.Version End Sub
バージョン番号一覧
バージョン毎の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) の値を返します。
実際に使用する場合は、数値型に変換して扱うのが良いと思います。
関数化しちゃうと楽かな。
' Excelのバージョン番号を取得し、数値に変換して返す Function GetAppVer() As Interger GetAppVersion = CInt(Application.Version) End Function
¥1,643
(2024/11/21 10:09:40時点 Amazon調べ-詳細)
¥359
(2024/11/21 10:09:41時点 Amazon調べ-詳細)
¥3,490
(2024/11/21 10:09:42時点 Amazon調べ-詳細)
コメント