最新Office 365でマクロ/VBAの問題が発生――「Semi-Annual Channel(半期チャネル)」で助かったという話山市良のうぃんどうず日記(107)(1/2 ページ)

2017年9月、Office 2016バージョンのOffice 365デスクトップアプリの「Monthly Channel」と「Semi-Annual Channel(Targeted)」に、バージョン1708の更新が提供されました。この更新により、Excelのマクロなど、VBAプロジェクトを含むファイルで問題が発生する可能性があるので注意しましょう。影響を受ける場合、結構面倒なことになります。

» 2017年10月04日 05時00分 公開
[山市良テクニカルライター]
「山市良のうぃんどうず日記」のインデックス

連載目次

祝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」となってややこしいですが、詳細は以下の連載記事をご覧ください。

 満を持して登場したバージョン1708ですが、実は大きな問題を抱えています。その問題は、まずExcelで報告されたようです。Excelファイルに含まれる「Visual Basic for Application(VBA)」のモジュール名やフォーム名の末尾が日本語(いわゆるダブルバイト文字)の場合、正常に開くことができなくなる可能性があるのです。主にExcelマクロに影響しますが、VBAプロジェクトを含む他のOfficeデスクトップアプリ(Word、Outlook、Accessなど)でも問題が発生する可能性があります。Officeアプリによって、エラーメッセージや動作は異なるので注意してください。

 日本のOfficeサポートチームが公開した以下のブログ記事はご存じでしょうか。Officeベースのスタンドアロンアプリやフロントエンドアプリを開発しているなら、目を通しておくべきです。そして、新しい情報が追加されていないかどうか、問題が解消されるまで定期的にチェックした方がよいでしょう。

 このブログ記事が最初に公開されたのは、バージョン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 画面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)。

画面2 画面2 「ファイル」→「アカウント」でバージョン情報を確認して「バージョン1708」と表示される場合、この問題の影響を受ける

 この問題を回避するには、公式ブログにあるように、1708より前のバージョンに戻し、Officeの自動更新を「無効」にすることです。ただし、Windows Updateを停止するという意味ではありません。クイック実行版Officeの更新には、Windows Updateは使用されません。そして、クイック実行版Officeの更新バージョンをロールバックする操作は、結構、大変な作業です(複雑なコマンドラインを実行する必要がありますし、時間もかかります)。

 VBAプロジェクトのコードを修正するという方法もありますが、それには影響を受けないバージョンのOfficeが必要です。また、筆者が使用しているような、VBAコードがパスワード保護されたファイルの場合は手の出しようがありません。

       1|2 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。