Office2019のサポート終了が2025年10月に迫ります。これを機にMicrosoft 365への移行が進む一方、過去に作成されたExcelファイルは、古い形式のまま使われ続けるケースが少なくありません。
そうしたファイルに組み込まれた、長年使ってきたVBAマクロは要注意です。一見、問題なく動作しているように見えても、その内部にはバージョン違いによって機能しなくなる「見えない非互換性の問題」が潜んでいるかもしれません。
中でも、セルにコメントを追記する「AddComment
メソッド」は、Officeの移行やバージョン混在環境で不具合を起こす可能性が非常に高い危険なポイントです。
「コメントが空になる」2つの危険なシナリオ
Office 2019以前の環境で作成した、次のようなシンプルなコメント追加マクロがあるとします。
▼ Office 2019以前では問題なく動作したコード
' この1行でテキスト入りのコメントが追加できた ThisSheet.Cells(1, 1).AddComment "ここに注意事項を記載"
このマクロは、以下の2つのシナリオで重大な問題を引き起こします。
- 【移行シナリオ】 Office 2019からMicrosoft 365へ更新した後、マクロを実行するとコメントの枠だけが追加され、中身のテキストが空になる。
- 【混在シナリオ】 Office 2019ユーザーが作ったファイルを、Microsoft 365ユーザーが実行すると、同様にテキストが空になる。
どちらのケースもエラーが出ないため、問題に気づきにくいのが厄介な点です。重要な申し送りが伝わらないまま業務が進んでしまうリスクがあります。
原因は「コメント」と「メモ」への仕様変更
この問題の根本原因は、Excelのバージョンアップに伴う「コメント」機能の仕様変更です。
Microsoft 365 (およびExcel 2021) 以降、従来の「コメント」は「メモ」という扱いに変わりました。そして、複数人での対話を想定した、新しいスレッド形式の「コメント」機能がメインになりました。
スレッド形式のコメントとメモの違い – Microsoft サポート
この変更により、VBAの「AddComment
メソッド」の役割が、実行環境によって変わっています。
- 旧仕様 (Office 2019以前):
AddComment
は、テキスト入りの「メモ」を作成する命令。 - 新仕様 (M365 / Excel 2021以降):
AddComment
は、空の「メモ」の器を追加するだけの命令。
▼個人向けプランのご購入はこちら
▼法人向けプランのご購入はこちら
つまり、マクロを実行する人のExcelバージョンによって挙動が異なってしまうことが、トラブルの原因です。
Excelバージョン | コメントの追加方法 | 備考 |
Excel 2019 以前 | Range.AddComment "テキスト" | この1行でテキスト入りのコメント(メモ)を追加可能。 |
Excel 2021 / Microsoft 365 | With Range <br> .AddComment <br> .Comment.Text = "テキスト" <br>End With | AddComment は空のメモを追加するだけ。テキストは別途.Comment.Text で設定が必要。 |
【解決策】バージョン違いを吸収する「共通コード」
この問題を解決し、誰がどのバージョンで実行しても同じ結果を得るためには、コードを以下のように修正します。この書き方は新旧どちらのバージョンでも正しく動作します。
▼ バージョンを問わず正しく動作するコード
' Withステートメントで対象セルを指定 With ThisSheet.Cells(1, 1) ' 手順1:まず空のメモを追加する (新旧共通) .AddComment ' 手順2:.Comment.Textプロパティでテキストを挿入する (新旧共通) .Comment.Text = "ここに注意事項を記載" End With
ポイントは「①AddComment
で器を作り、②.Comment.Text
で中身を入れる」という2段階の手順にすることです。不特定多数の人が利用するファイルでは、この後方互換性のある書き方を徹底することが、トラブルを未然に防ぐ鍵となります。
あなたの「VBA資産」の棚卸しを!
Office 2019のサポート終了は、これまで培ってきたVBAマクロという「見えない資産」を見直し、メンテナンスする絶好の機会かもしれません。以下のステップで、ぜひ一度チェックしてみてください。
- 把握する: まず、業務で使っているExcelマクロを洗い出し、誰がどのバージョンで利用しているか把握しましょう。
- 確認・修正する: VBAエディタ(
Alt
+F11
)でAddComment
やDeclare
といったキーワードを検索し、今回の例のように互換性のあるコードに修正します。 - テストする: 可能であれば、利用者の環境(新旧両方のバージョン)で、修正したマクロが意図通りに動作するかを必ずテストしてください。
おわりに
便利なはずのVBAマクロが、Officeのバージョンアップによって思わぬトラブルの原因となりかねません。特に、今回の「AddComment」の罠のように、エラーが出ないまま機能が失われる問題は、気づかないうちに重要な業務に支障をきたす可能性があります。
Office 2019のサポート終了が迫る今、まさに皆さんの大切なVBAマクロを「見える化」し、メンテナンスする絶好の機会です。まずは、業務で使っているExcelマクロがどれくらいあるのか、そして誰がどのOfficeバージョンで利用しているのかを把握することから始めてはいかがでしょうか。
この記事が、皆さんのVBA資産を守る「気づき」となれば幸いです。