バージョンによる動作の違い
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
															(2025/11/04 11:23:18時点 Amazon調べ-詳細)
																	
						
							¥2,069
															(2025/11/04 11:23:18時点 Amazon調べ-詳細)
																	
						
							¥3,988
															(2025/11/04 11:23:19時点 Amazon調べ-詳細)
																	
						



コメント