
ExcelVBA 作成したマクロが異なるExcelのバージョンやファイル形式でも正しく動作するか確認。「互換性チェック」は、VBAコードや機能が古いバージョンでも問題なく使えるかを検証するために行います。使い方や注意点など、サンプルコードをもとに具体的に解説します。
📌 「これ、自動化できたらラクなのに…」と思ったこと、ありませんか?
実はその作業、Excelマクロで簡単に自動化できるかもしれません。
「でもマクロって難しそう…」という方のために、完全初心者向けの入門記事をご用意しました!
👇実務で“そのまま使える”テンプレ付きで、コピペするだけ!
初心者向けエクセルマクロの作り方を解説|コピペOK実務テンプレ付き
Excel VBA バージョン確認|シーン
以下のシーンで利用します。
1. 異なるExcelバージョン(例: 2007, 2013, 2016, 2019, 365)で動作確認する。
2. 「.xlsm」「.xls」「.xlsx」などのファイル形式の制約を確認する。
3. VBAの新機能が旧バージョンでは使えないかどうかをチェックする。
4. マクロが無効になる環境(例: Mac版ExcelやWeb版Excel)での対策を考える。
Excel VBA バージョン確認|サンプルコード
Option Explicit
Sub CheckExcelVersion() '標準モジュール
MsgBox "現在のExcelバージョン: " & Application.Version, vbInformation, "バージョン情報"
End Sub
自分の実力を客観的にチェックしたい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集をご用意しました。
Excel バージョン | Version 値 |
Excel 2007 | 12.0 |
Excel 2010 | 14.0 |
Excel 2013 | 15.0 |
Excel 2016 | 16.0 |
Excel 2019 | 16.0 |
Excel 365 | 16.0 |
Excel 2019以降は 16.0 なので、より詳細な情報が必要な場合は Application.Build を使います。
マクロ対応形式(.xlsm)かどうかをチェック
VBAが実行可能な形式 (.xlsm など) で保存されているかを判定できます。
Option Explicit
Sub CheckMacroEnabledWorkbook() '標準モジュール
If ThisWorkbook.FileFormat = xlOpenXMLWorkbookMacroEnabled Then
MsgBox "このファイルはマクロ有効ブック(.xlsm)です。", vbInformation, "互換性チェック"
Else
MsgBox "このファイルはマクロ無効ブック(.xlsx)です!マクロを実行できません。", vbExclamation, "互換性チェック"
End If
End Sub
.xlsm → マクロが実行可能
.xlsx → マクロが削除されるので注意
古いExcelバージョンで動作しない関数をチェック
例えば、Application.TextJoin はExcel 2019以降で導入されたため、古いバージョンではエラーになります。
バージョンごとに処理を分岐させるには、以下のようにします。
Option Explicit
Sub CheckFunctionCompatibility() '標準モジュール
If Val(Application.Version) < 16 Then
MsgBox "このバージョンではTEXTJOIN関数は使用できません。", vbExclamation, "互換性チェック"
Else
MsgBox "このバージョンではTEXTJOIN関数が使用可能です。", vbInformation, "互換性チェック"
End If
End Sub
新しい関数を使う前に、バージョンをチェックして分岐処理を入れる。
代替手段(ループを使うなど)を考えておく。
Mac版やWeb版での互換性チェック
MacやWeb版のExcelでは、ActiveXコントロール や Application.FileDialog など一部の機能が動作しません。
Macで実行中かどうかを判定するには、Application.OperatingSystem を使います
Option Explicit
Sub CheckIfMac() '標準モジュール
If InStr(1, Application.OperatingSystem, "Mac", vbTextCompare) > 0 Then
MsgBox "このマクロはMacでは動作しない可能性があります。", vbExclamation, "互換性チェック"
Else
MsgBox "Windows環境で動作しています。", vbInformation, "互換性チェック"
End If
End Sub
ActiveX コントロール(ボタンやリストボックスなど)
FileDialog(ファイル選択ダイアログ)
Shell(コマンドプロンプトの実行)
・新しいExcelの機能(TEXTJOINなど)は、古いバージョンでは使えない。
・マクロを使用する場合は、ファイル形式を .xlsm で保存する。
・MacやWeb版では、ActiveXや一部のAPIが動作しない。
・Excel 2019以降は Version = 16.0 で統一されているため、Build も確認するとより正確
Excel VBA バージョン確認|まとめ
チェック内容 | 方法 |
Excelのバージョン確認 | Application.Version |
マクロ対応形式か確認 | ThisWorkbook.FileFormat |
互換性のない関数のチェック | If Val(Application.Version) < xx Then で分岐 |
Macでの動作判定 | Application.OperatingSystem |
Web版で動作しない機能 | ActiveXコントロール や Shell |
VBAマクロを作成するときは、異なるExcel環境での互換性を考慮し、事前にチェック処理を入れることが重要
「Excel VBAで自動化するコードのベースが習得できる解説書」
Excel VBAエキスパートベーシックとスタンダード、どちらを選べばいいか判断が難しい…。そんな方のために、自分に合ったスタート地点がわかる無料のExcelVBAベーシック選択問題集を用意しました。