Excelを使った業務マクロを作っていると、「この処理、相手のExcelバージョンによって動作が違うんじゃない?」と不安になることはありませんか?さらに、社内で複数の環境をサポートする場合、バージョンやOS情報を自動で確認できないと、予期せぬエラーや不具合の温床になります。そこで今回は、excel バージョン 確認 VBAをテーマに、初心者でもすぐに理解でき、プロでも役立つ実践的な知識をまとめました。この記事を読み終える頃には「え?知らなかった!」と驚くほどスッキリ整理できるはずです。
なぜExcelのバージョン確認が必要なのか?
まず大前提として、なぜバージョン確認が重要なのかを理解しましょう。理由はシンプルですが非常に実務的です。
Excelは2003、2007、2010、2013、2016、2019、Microsoft 365と進化を続けてきました。その過程で利用できる関数やオブジェクトモデルの仕様が変化しているため、バージョン依存のトラブルは避けられません。
例えば、あるマクロはExcel 2010では問題なく動作するのに、Excel 365ではエラーが発生するケースがあります。こうした状況を回避するには、事前にVBAでバージョンを確認して処理を分岐させる仕組みが欠かせません。
Excelのバージョンを確認する基本のVBAコード
最もシンプルにバージョンを確認する方法はApplication.Versionを使うことです。これはExcelのメジャーバージョン番号を文字列で返してくれるため、条件分岐に利用できます。
基本コード例
以下のコードを実行すると、現在のExcelバージョンがメッセージボックスに表示されます。
Sub CheckExcelVersion()
MsgBox "Excelのバージョンは " & Application.Version
End Sub
この方法は簡単ですが、返り値が「16.0」のように数値に見える文字列で返ってくるため、実際にはExcel 2016、2019、365を区別できません。そこで次のステップが必要です。
バージョンごとの識別と応用テクニック
単純にバージョン番号を知るだけでは十分ではありません。業務で役立つのはどのExcelのエディションなのかを判定し、それに応じてコードを最適化することです。
バージョン番号と実際の製品対応表
以下の表を参考にすれば、返ってきた数値を人間が理解できる製品名に変換できます。
| Application.Version | 対応するExcelバージョン |
|---|---|
| 11.0 | Excel 2003 |
| 12.0 | Excel 2007 |
| 14.0 | Excel 2010 |
| 15.0 | Excel 2013 |
| 16.0 | Excel 2016以降(2019、365含む) |
条件分岐のサンプルコード
Sub ExcelVersionBranch()
Select Case Val(Application.Version)
Case 11
MsgBox "Excel 2003用の処理を実行"
Case 12
MsgBox "Excel 2007用の処理を実行"
Case 14
MsgBox "Excel 2010用の処理を実行"
Case 15
MsgBox "Excel 2013用の処理を実行"
Case 16
MsgBox "Excel 2016以降用の処理を実行"
Case Else
MsgBox "未知のバージョンです"
End Select
End Sub
こうすることで、複数環境に対応した堅牢なマクロが作成できます。
OS情報や詳細環境を確認する方法
Excelだけでなく、Windows OSの種類やビルド番号を確認したいケースもあります。たとえば、Windows 10と11で挙動が異なる場合などです。そんなときはWMI(Windows Management Instrumentation)を利用するのが便利です。
WMIを利用した環境取得コード
Sub GetSystemInfo()
Dim objWMI As Object
Dim objItem As Object
Set objWMI = GetObject("winmgmts:\\.\root\cimv2").ExecQuery("Select * from Win32_OperatingSystem")
For Each objItem In objWMI
MsgBox "OS名: " & objItem.Caption & vbCrLf & _
"バージョン: " & objItem.Version & vbCrLf & _
"ビルド番号: " & objItem.BuildNumber
Next
End Sub
これを使えば、OSの詳細バージョンを自動的に記録し、ログ出力やサポートに役立てられます。
excel バージョン 確認 VBAに関する疑問解決
Q1: Excel 2016と365を判別する方法はある?
残念ながらApplication.Versionでは区別できません。代わりにApplication.Buildを併用し、定期的に変わるビルド番号をログに残すことで365かどうかを推定できます。
Q2: バージョン判定は毎回必要?
必須ではありませんが、配布するマクロや社内で複数環境を扱う場合は必須級です。トラブルシューティングの効率が大きく変わります。
Q3: WMIを使うと遅くならない?
ごく短い遅延は発生しますが、実務レベルでは無視できる程度です。大量処理を行う前の環境チェックとして使うのが現実的です。
今すぐパソコンやスマホの悩みを解決したい!どうしたらいい?
いま、あなたを悩ませているITの問題を解決します!
「エラーメッセージ、フリーズ、接続不良…もうイライラしない!」
あなたはこんな経験はありませんか?
✅ ExcelやWordの使い方がわからない💦
✅ 仕事の締め切り直前にパソコンがフリーズ💦
✅ 家族との大切な写真が突然見られなくなった💦
✅ オンライン会議に参加できずに焦った💦
✅ スマホの重くて重要な連絡ができなかった💦
平均的な人は、こうしたパソコンやスマホ関連の問題で年間73時間(約9日分の働く時間!)を無駄にしています。あなたの大切な時間が今この悩んでいる瞬間も失われています。
LINEでメッセージを送れば即時解決!
すでに多くの方が私の公式LINEからお悩みを解決しています。
最新のAIを使った自動応答機能を活用していますので、24時間いつでも即返信いたします。
誰でも無料で使えますので、安心して使えます。
問題は先のばしにするほど深刻化します。
小さなエラーがデータ消失や重大なシステム障害につながることも。解決できずに大切な機会を逃すリスクは、あなたが思う以上に高いのです。
あなたが今困っていて、すぐにでも解決したいのであれば下のボタンをクリックして、LINEからあなたのお困りごとを送って下さい。
ぜひ、あなたの悩みを私に解決させてください。
まとめ
excel バージョン 確認 VBAは、単なるバージョン取得だけでなく、業務を安定化させるための強力な武器です。
この記事で紹介したように、Application.Versionで基本を押さえ、WMIで詳細環境を補完すれば、どんな環境でも安心してマクロを動かせます。
結論として、Excelバージョン確認は「面倒な作業」ではなく、安定稼働のための投資です。今すぐ手元のマクロにバージョン判定コードを加え、トラブル知らずの環境を整えてみてください。





コメント