最新Office 365でマクロ/VBAの問題が発生――「Semi-Annual Channel(半期チャネル)」で助かったという話:山市良のうぃんどうず日記(107)(1/2 ページ)
2017年9月、Office 2016バージョンのOffice 365デスクトップアプリの「Monthly Channel」と「Semi-Annual Channel(Targeted)」に、バージョン1708の更新が提供されました。この更新により、Excelのマクロなど、VBAプロジェクトを含むファイルで問題が発生する可能性があるので注意しましょう。影響を受ける場合、結構面倒なことになります。
祝Semi-Annual Channelスタート、一転、Officeアプリ開発者は変な汗?
2017年9月から「クイック実行版(Click to Run:C2R)」のOffice 365/Office 2016で、年2回のサイクルで新機能が提供される「Semi-Annual Channel」がスタートしました。従来の「Current Branch」(最新機能の提供チャネル)、「First Release for Deferred Channel」(段階的提供チャネルの最初のリリース)、「Deferred Channel」(段階的提供チャネル)は、今後それぞれ「Monthly Channel」(月次チャネル)、「Semi-Annual Channel(Targeted)」(半期チャネル(対象限定))、「Semi-Annual Channel」(半期チャネル)になります(カッコ内は日本語版のバージョン情報の表記)。
2017年9月12日(米国時間)のSemi-Annual Channel(Targeted)、2017年9月18日(同)のMonthly Channelに、新しいチャネル名称がバージョン情報に反映された「バージョン1708」が提供されました。Semi-Annual Channelへのバージョン1708の提供は、4カ月遅れの2018年1月ごろになる予定です。「Office 2016バージョンのバージョン1708」となってややこしいですが、詳細は以下の連載記事をご覧ください。
- 君の名は? 未来に再会したときに気付くかな――Windows/Officeにおけるサービスオプション名の変更(連載:その知識、ホントに正しい? Windowsにまつわる都市伝説 第93回)
満を持して登場したバージョン1708ですが、実は大きな問題を抱えています。その問題は、まずExcelで報告されたようです。Excelファイルに含まれる「Visual Basic for Application(VBA)」のモジュール名やフォーム名の末尾が日本語(いわゆるダブルバイト文字)の場合、正常に開くことができなくなる可能性があるのです。主にExcelマクロに影響しますが、VBAプロジェクトを含む他のOfficeデスクトップアプリ(Word、Outlook、Accessなど)でも問題が発生する可能性があります。Officeアプリによって、エラーメッセージや動作は異なるので注意してください。
日本のOfficeサポートチームが公開した以下のブログ記事はご存じでしょうか。Officeベースのスタンドアロンアプリやフロントエンドアプリを開発しているなら、目を通しておくべきです。そして、新しい情報が追加されていないかどうか、問題が解消されるまで定期的にチェックした方がよいでしょう。
- Office 2016バージョン1708以降で日本語のVBAモジュール名を含むファイルを開くとエラー(Japan Office Developer Support Blog)
このブログ記事が最初に公開されたのは、バージョン1708がリリースされる前の2017年8月です。実は、3つの更新チャネルの他に「Insider First」と「Monthly Channel(Targeted)」(旧称、Insider Slow/First Release for Current Chanel)、「Insider Slow」という、Office Insiderプログラム向けのチャネルがあります。つまり、Microsoftは“Office Insiderの時点でこの問題を認識していたにもかかわらず、正式リリースした”ということです。当初はこの問題が修正されるかどうかさえはっきりしませんでしたが、2017年9月28日になってようやく、修正に向けた作業が始まったことが明らかになりました。
とある書籍の付録青色申告アプリで発症
筆者は、何年も前に購入した書籍の付録として提供されていた青色申告用Excelアプリ(.xlsm、Excelマクロ有効ブック形式)を利用しています。既に更新サポートは終了したバージョンでしたが、購入元からの修正版の案内メールを受けて、この問題を認識しました。筆者のメインPCは、Office 365 ProPlusの既定であるSemi-Annual Channel(旧称、Deferred Channel)を使用していたので、2017年9月の更新の影響を受けることはありませんでした。試しに、Monthly Channel(旧称、Current Channel)のExcel 2016でExcelアプリを開いてみたところ、問題が発生することを確認できました(画面1)。
画面1 筆者がもしOffice 365 ProPlusをMonthly ChannelやSemi-Annual Channel(Targeted)を使用していたら、2017年9月の中ごろに突然、この問題に遭遇したことになる(実際はSemi-Annual Channelで使用)
筆者は、4カ月遅れのSemi-Annual Channelで使用していたことを安堵するとともに、Semi-Annual Channelの安心感と、Monthly ChannelとSemi-Annual Channel(Targeted)の危うさを感じました(画面2)。
この問題を回避するには、公式ブログにあるように、1708より前のバージョンに戻し、Officeの自動更新を「無効」にすることです。ただし、Windows Updateを停止するという意味ではありません。クイック実行版Officeの更新には、Windows Updateは使用されません。そして、クイック実行版Officeの更新バージョンをロールバックする操作は、結構、大変な作業です(複雑なコマンドラインを実行する必要がありますし、時間もかかります)。
VBAプロジェクトのコードを修正するという方法もありますが、それには影響を受けないバージョンのOfficeが必要です。また、筆者が使用しているような、VBAコードがパスワード保護されたファイルの場合は手の出しようがありません。
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Windows 10への移行計画を早急に進めるべき理由
本連載では、これからWindows 10への移行を本格的に進めようとしている企業/IT管理者に向け、移行計画、展開、管理、企業向けの注目の機能を解説していきます。第1回目は、「Windows 10に移行すべき理由」を説明します。 - Windows 7/8.1/10のサポート期限早見表
【2019年6月更新版】Windows OSは、提供開始から10年間のサポート期間が設けられている。この期間を把握しておかないと、システムのリプレース計画などに支障が出かねない。Windows 10では特に複雑になっているので、ここでWindows OSのサポート期間をまとめておく。 - “Windows Vistaのサポート終了のお知らせ”のお知らせ
3年前のWindows XPサポート終了の大騒ぎに、懐かしさや時間の経過の速さを感じますが、いよいよWindows Vistaの番が迫ってきました。Windows Vistaは、2017年4月11日(米国時間)に全てのサポートが終了します。 - Windows 10、サポートが終了した古いバージョンのその後の“運命”
2017年5月9日(日本では10日)、2015年7月末にリリースされた「Windows 10の初期リリース(ビルド10240)」のサポートが終了しました。同一ビルドがベースのWindows 10 Enterprise 2015 LTSBのサポートは継続され、2025年10月14日(日本では15日)まで提供されます。サポート終了から3カ月以上が経過したWindows 10初期リリースの”いま”を追ってみました。