日常業務でマクロを作成しても「人によってExcelのバージョンが違って動かない…」そんな経験はありませんか?また、「.xlsxで保存したらマクロが消えた!」「Macでは動かない…」といったトラブルもよく耳にします。実はこれらの多くはバージョン確認と互換性チェックを事前に行うだけで回避できます。本記事では、初心者でも安心して実務に活かせるExcel VBAでのバージョン確認テクニックを徹底解説します。驚くほどシンプルなのに役立つ方法をまとめたので、これを読めばもう互換性の不安とはサヨナラできるでしょう。
Excelバージョン確認の基本知識
まずはExcelのバージョン番号の仕組みを理解することから始めましょう。Excelは2007以降、2010、2013、2016、2019、Microsoft 365と進化してきました。内部的にはバージョン番号(Version)やビルド番号(Build)で管理されています。
例えば次のような対応表があります。
| Excel製品 | Version番号 |
|---|---|
| Excel 2010 | 14.0 |
| Excel 2013 | 15.0 |
| Excel 2016 / 2019 / 365 | 16.0 |
同じ16.0でも更新プログラムによって機能が追加されることがあるため、Application.Buildを組み合わせて確認するとさらに正確です。
VBAでバージョンを確認する方法
では実際にどのようにVBAでバージョンを取得するのか、最もシンプルなサンプルコードを紹介します。
バージョン番号を取得するコード
Sub CheckVersion()
MsgBox Application.Version
End Sub
このコードを実行すると、ExcelのVersion番号(例: “16.0”)が表示されます。
ビルド番号を取得するコード
Sub CheckBuild()
MsgBox Application.Build
End Sub
これにより、同じExcel 2019でも更新プログラムの違いを区別できます。これが実務での安定動作のカギとなります。
ファイル形式の制約と注意点
マクロを含むファイルは.xlsm形式で保存しなければなりません。.xlsxで保存すると、せっかく作ったVBAコードが消えてしまうので要注意です。
- .xlsmはマクロ実行可能な形式で、業務利用では必須です。
- .xlsxはマクロが削除されるため、マクロを使う場合は避けましょう。
- .xls(Excel 97-2003形式)は古い環境で利用可能ですが、最新機能との互換性が低いため推奨されません。
古いバージョンで使えない関数を判定する
Excel VBAには、新しいバージョンでのみ利用できる関数やプロパティがあります。例えばApplication.TextJoinはExcel 2019以降でしか利用できません。
これを避けるには次のようなコードを活用します。
If Val(Application.Version) >= 16 Then
' TEXTJOINを使用する処理
Else
' 古いバージョン向けの代替処理
End If
こうした分岐を入れることで、異なる環境でも安定して動作するコードを作成できます。
Mac版・Web版Excelの落とし穴
Windows版では動くマクロが、MacやWeb版では動かないケースもあります。特に注意が必要なのが以下の機能です。
- ActiveXコントロール(ボタンやリストボックスなど)
- Application.FileDialog(ファイル選択ダイアログ)
- Shell関数(コマンド実行)
Mac環境かどうかを判定するには以下のコードを利用します。
If InStr(Application.OperatingSystem, "Mac") > 0 Then
MsgBox "Mac環境です"
End If
このように環境を識別して処理を分岐すれば、想定外のエラーを防げます。
excelバージョン確認VBAに関する疑問解決
Q1: Excel 2016と2019の違いを判定できますか?
Excel 2016と2019はどちらもVersionは16.0なので、Application.Buildを確認する必要があります。
Q2: バージョン確認を自動化して警告を出せますか?
はい、可能です。マクロの冒頭にバージョンチェックを入れて、条件に合わない場合は処理を停止するコードを組み込めば安心です。
Q3: 互換性を保つコツは?
常に最新バージョンを想定せず、最小公約数的なコードを書くことが重要です。古い環境でも動くように代替コードを準備しておくのがベストプラクティスです。
まとめ
Excel VBAでのマクロ開発は、バージョン確認と互換性チェックを入れるかどうかで安定性が大きく変わります。VersionやBuildで環境を正確に判定し、ファイル形式や関数の対応状況を理解しておけば、予期せぬエラーを防げます。また、Mac版やWeb版など異なる環境にも対応することで、誰が使っても動く「安心できるマクロ」を作れます。
つまり、excel バージョン 確認 VBAは単なるテクニックではなく実務に直結する安心の仕組みです。今日からぜひ自分のマクロに組み込んで、安定した自動化を実現しましょう。




コメント