カテゴリ: Excel VBA 更新日: 2026/01/06

Excel VBAを複数バージョンで開発する際の注意点を完全解説!Office 2016〜Microsoft 365対応

Excel VBAを複数バージョンで開発する際の注意点(Office 2016〜Microsoft 365)
Excel VBAを複数バージョンで開発する際の注意点(Office 2016〜Microsoft 365)

先生と生徒の会話形式で理解しよう

生徒

「会社のパソコンはOffice 2016で、自宅はMicrosoft 365なんですが、VBAって同じように動きますか?」

先生

「基本は同じですが、いくつか気をつけないとエラーが出ることがあります」

生徒

「パソコン初心者でも分かるように教えてほしいです…」

先生

「大丈夫です。仕組みと注意点を順番に説明します」

1. Excel VBAはバージョンが違っても使えるのか

1. Excel VBAはバージョンが違っても使えるのか
1. Excel VBAはバージョンが違っても使えるのか

Excel VBAは、Office 2016、Office 2019、Microsoft 365のどれでも基本的な仕組みは同じです。そのため、簡単なマクロであれば、ほぼ同じように動作します。

ただし、細かい部分では違いがあり、これを知らないと「昨日まで動いていたのに今日はエラーが出る」という状況になります。

これは、同じ電池式のおもちゃでも、新しい電池と古い電池で動き方が少し変わるのと似ています。

2. Office 2016とMicrosoft 365の大きな違い

2. Office 2016とMicrosoft 365の大きな違い
2. Office 2016とMicrosoft 365の大きな違い

Office 2016は、インストールした時点の機能が基本となる買い切り型です。一方、Microsoft 365は常に更新されるサブスクリプション型です。

そのため、Microsoft 365では新しいExcel機能が追加されることがありますが、Office 2016では使えない場合があります。

VBAで新機能を前提にした処理を書くと、古いバージョンでは動かなくなる点に注意が必要です。

3. 複数バージョンで起きやすい代表的なトラブル

3. 複数バージョンで起きやすい代表的なトラブル
3. 複数バージョンで起きやすい代表的なトラブル

複数バージョン環境でよく起きるトラブルには、次のようなものがあります。

  • 参照設定の違いによるコンパイルエラー
  • Excel関数の対応差
  • 32bit版と64bit版の違い

特に初心者の方は、コードが原因だと思い込みがちですが、実は環境の違いが原因というケースが非常に多いです。

4. 参照設定は最小限にする

4. 参照設定は最小限にする
4. 参照設定は最小限にする

Excel VBAでは「参照設定」によって追加機能を使いますが、複数バージョンで開発する場合は、できるだけ参照設定を増やさないことが大切です。

標準で使える機能だけを使えば、バージョン差によるエラーを減らせます。


Sub SimpleMessage()
    MsgBox "どのバージョンでも動くVBAです"
End Sub

このようなシンプルなコードは、どのExcelバージョンでも安心して使えます。

5. 32bit版と64bit版の違いに注意

5. 32bit版と64bit版の違いに注意
5. 32bit版と64bit版の違いに注意

Officeには32bit版と64bit版があります。見た目は同じでも、内部の仕組みが少し違います。

特にWindows APIを使うVBAでは、64bit版でエラーが出ることがあります。

初心者のうちは、APIを使わないVBAを書くことで、トラブルを避けやすくなります。

6. Excel関数の違いをVBAで扱うとき

6. Excel関数の違いをVBAで扱うとき
6. Excel関数の違いをVBAで扱うとき

Microsoft 365では新しいExcel関数が追加されていますが、Office 2016では使えないことがあります。

VBAからワークシート関数を呼び出す場合も注意が必要です。


Sub SumSample()
    Dim result As Double
    result = WorksheetFunction.Sum(1, 2, 3)
    MsgBox result
End Sub

このような基本的な関数であれば、どのバージョンでも問題なく使えます。

7. 開発環境は一番古いバージョンを基準にする

7. 開発環境は一番古いバージョンを基準にする
7. 開発環境は一番古いバージョンを基準にする

複数バージョンで使うVBAを作る場合は、一番古いExcelバージョンを基準に開発するのが安全です。

これは、古い道でも通れる車を選べば、新しい道路でも問題なく走れるという考え方です。

Office 2016で問題なく動けば、Microsoft 365でもほぼ確実に動きます。

8. 動作確認は必ず複数環境で行う

8. 動作確認は必ず複数環境で行う
8. 動作確認は必ず複数環境で行う

可能であれば、異なるExcelバージョンで動作確認を行いましょう。

難しい場合は、同僚や家族のパソコンを借りて確認するだけでも効果があります。

事前確認を行うことで、配布後のトラブルを大きく減らせます。

9. 初心者でも安心して開発するための心構え

9. 初心者でも安心して開発するための心構え
9. 初心者でも安心して開発するための心構え

Excel VBAは、環境の違いを理解すれば怖いものではありません。

難しい機能を無理に使わず、基本を大切にすることで、どのバージョンでも安定したマクロを作れます。

環境の違いは失敗ではなく、経験として積み上がっていきます。

カテゴリの一覧へ
新着記事
New1
Excel VBA
目的別にモジュールを分割する方法!処理単位で整理して見やすくするテクニック
New2
Office Scripts
Office Scriptsの基本!Excel自動化で使う関数とコードの書き方
New3
Office Scripts
Office Scriptsの基本!Excel自動化で使う関数とコードの書き方
New4
Excel VBA
VBAクラスモジュールとは?メリットと基本的な使い方を初心者向けに解説
人気記事
No.1
Java&Spring記事人気No1
Office Scripts
Office Scriptsの基本!Excel自動化で使う関数とコードの書き方
No.2
Java&Spring記事人気No2
Excel VBA
VBAクラスモジュールとは?メリットと基本的な使い方を初心者向けに解説
No.3
Java&Spring記事人気No3
Excel VBA
Excel VBAのプロジェクト構成とモジュール管理!標準・シート・ThisWorkbookの違い
No.4
Java&Spring記事人気No4
Office Scripts
Office Scriptsの基本!Excel自動化で使う関数とコードの書き方
No.5
Java&Spring記事人気No5
Office Scripts
Office Scriptsの基本!Excel自動化で使うインターフェイスとスクリプト設計の考え方
No.6
Java&Spring記事人気No6
Office Scripts
Office Scriptsの基本!Excel自動化で学ぶエラーを防ぐ型チェックの活用方法
No.7
Java&Spring記事人気No7
Office Scripts
Office Scriptsの基本!Excel自動化で使う関数とコードの書き方
No.8
Java&Spring記事人気No8
Excel VBA
Excel VBAプロジェクトを整理する方法!保守しやすいフォルダ・命名規則まとめ