Office 2016 バージョン 1708 以降で日本語の VBA モジュール名を含むファイルを開くとエラー
こんにちは、Office 開発サポート チームの中村です。
今回の記事では、Office 2016 クイック実行形式 (C2R) 向けのバージョン 1708 (16.0.8431.2079) の更新によって、日本語のモジュール名やフォーム名を持つ Office ファイルを開くときにエラーが発生する動作について記載します。
2017/9/19 Update
Semi-Annual (Targeted) Channel と Monthly Channel 向けにもバージョン 1708 が公開された旨を追記しました。
2017/9/20 Update
Excel 以外のアプリケーションでも発生する旨を追記しました。
2017/9/28 Update
現象発生条件の補足と、暫定対応でご案内している Office を以前のバージョンに戻す手順を、今回の問題向けにより簡略化したものを追記しました。また、本問題の修正に向けた作業に着手していますので、状況を更新しました。
2017/9/29 Update
Access のエラーメッセージの情報を追記しました。また、情報が多くなったため、記事構成を全体的に変更しました。
2017/10/4 Update
Monthly Channel に修正されたバージョンを公開しました。
2017/10/5 Update
Office 画面から更新可能になりました。Insider スローにも修正されたバージョンを公開しました。現象が発生するバージョンの詳細を追記しました。
2017/10/10 Update
Semi-Annual (Targeted) Channel に修正されたバージョンを公開しました。
2017/10/30 Update
Insider ファーストに修正が公開され、全てのチャネル向けに修正が行われました。修正バージョン情報を追記、整理しました。
1. 現象
Office 2016 クイック実行形式向けの更新 バージョン 1708 (16.0.8431.2079) において、モジュール名やフォーム名に日本語が設定された Office のマクロ付きファイルを開こうとすると、以下のようなメッセージが表示され、正常に開くことができません。
Excel 2016
例1:
'ファイル名' の一部の内容に問題が見つかりました。可能な限り内容を回復しますか?
ブックの開発元が信頼できる場合は、[はい] をクリックしてください。
例2:
このブック内の Visual Basic for Applications (VBA) マクロは破損しており、削除されました。
マクロの破損は現在のファイルに存在する可能性があります。
マクロを回復するには このファイルのバックアップ コピーを開いてください (バックアップ コピーがある場合) 。
Access 2016
例3 :
データベースに含まれている VBA プロジェクトを読み取れないため、データベースを開くことができません。データベースを開くには、VBA プロジェクトを削除する必要があります。VBA プロジェクトを削除すると、モジュール、フォーム、およびレポートからすべてのコードが削除されます。データベースを開いて、VBA プロジェクトを削除する前に、バックアップ コピーを作成することをお勧めします。
データベースのバックアップ コピーを作成する場合は、[キャンセル] をクリックしてください。バックアップ コピーを作成しないでデータベースを開き、VBA プロジェクトを削除する場合は、[OK] をクリックしてください。
この問題は、VBA モジュールの問題によって生じるため、VBA を作成できるすべての Office アプリケーション (Excel / Word / PowerPoint / Access / Publisher / Project / Visio / Outlook) で問題が生じます。アプリケーションによって、VBA モジュールのエラーハンドリングが異なるため、詳細な動作は異なりますが、いずれも、日本語のモジュール名、ユーザーフォーム名を含む VBAProject を読み込むことができず、マクロを実行できません。その他、以下のような現象が発生します。
- ファイルのオープン時や、Visual Basic Editor の起動時にエラーメッセージが表示されます
- ファイルを保存すると、VBAProject が削除されます (上書き保存を行わないようご注意ください)
- Word については、日本語のモジュール名を含む VBAProject が含まれている場合、ファイルを上書き保存することができません
- Publisher については、日本語のモジュール名を含む VBAProject が含まれている場合、ファイルを開くことができません
補足) 本現象は、厳密には、モジュール名やフォーム名の末尾が日本語 (をはじめとする DBCS 文字) の場合に発生します。このため、例えば「フォーム1」(1 は半角数字) のように末尾が半角の場合には、名前に日本語を含んでいても現象は発生しません。
2. バージョン 1708 更新の公開状況
問題が発生するバージョン 1708 (16.0.8431.2079) は Office Insider ファースト / スロー、Monthly Channel (旧 Current Channel)、および Semi-Annual (Targeted) Channel (旧 First Release for Deferred Channel) 向けに公開されています。
3. 対応状況
2017/10/30 Update
すべてのチャネル向け に修正を公開しました。それぞれ、以下のバージョン以降で修正されています。
Insider ファースト : 16.0.8625.2055
Insider スロー : 16.0.8528.2126
Monthly Channel : 16.0.8431.2094
Semi-Annual (Targeted) Channel : 16.0.8431.2107
自動更新を有効にされている場合、全てのチャネルにおいて、上記の修正済みバージョンが適用されるようになっています。
参考) 公開直後の更新適用に関する情報
公開直後は、自動更新ではこのバージョンに更新されないことがあります。[ファイル] タブ - [アカウント] - [更新オプション] - [今すぐ更新] から手動で更新してください。また、さらに公開後すぐのタイミングでは、以下の暫定対応手順に記載の officec2rclient.exe を用いたコマンドラインからのみ更新可能な期間があります。この間は、以下の暫定対応手順の指定するバージョンを上記の修正されたバージョンに変更してコマンドラインから更新してください。
暫定対応手順
以前のバージョンなどでモジュール名およびフォーム名を半角英数字に修正してください。
Office 2016 クイック実行形式を以前のバージョンに戻す方法につきましては、以下のリンクをご確認ください。
タイトル : 以前のバージョンの Office 2013 または Office 2016 クイック実行に戻す方法
アドレス : https://support.microsoft.com/ja-jp/help/2770432
リンク先の手順は汎用手順のため、今回の対応向けに簡略化した手順を以下に記載します。(Monthly Channel をご利用のユーザーを想定しています。)
1. コマンド プロンプトの起動
Windows キー + R キーを押下し、[ファイル名を指定して実行] ウィンドウを表示します。cmd と入力して [OK] をクリックして、コマンド プロンプトを起動します。
※ 一般ユーザー権限での起動で問題ありません。
2. Office 2016 を以前のバージョンに戻すコマンドを実行
起動したコマンド プロンプトに以下のコマンドを貼り付け、Enter キーを押下して実行します。
"%programfiles%\Common Files\Microsoft Shared\ClickToRun\officec2rclient.exe" /update user updatetoversion=16.0.8326.2107
[caption id="attachment_1476" align="alignnone" width="850"] 図 1. Office バージョンを戻すコマンドを実行[/caption]
※ Office のインストール フォルダを既定のフォルダから変更している場合は、%programfiles% 部分を Office インストール フォルダに変更してください。
※ Monthly Channel 以外をご利用のユーザーは、先述の資料内からリンクされている自身のチャネルで戻すことができるバージョンを確認してください。
以下のウィンドウが順に表示され、以前のバージョンに戻す処理が実行されます。ウィンドウが自動的に閉じられるまでお待ちください。(ネットワーク環境によりますが、数十分程度かかります。)
[caption id="attachment_1425" align="alignnone" width="490"] 図 2. クイック実行 更新ダウンロード[/caption]
[caption id="attachment_1435" align="alignnone" width="490"] 図 3. クイック実行 更新適用[/caption]
更新が完了したら Office アプリケーションを起動して新規ファイルを作成し、[ファイル] タブ - [アカウント] をクリックしてバージョンが「バージョン 1707 (ビルド 8326.2107 クイック実行) 」に戻っていることを確認します。( 以下赤枠の箇所)
[caption id="attachment_1455" align="alignnone" width="1012"] 図 4. バージョンの確認[/caption]
3. 自動更新の停止
問題が生じるバージョンがまた自動的にインストールされないよう、自動更新を停止します。
いずれかの Office アプリケーションを起動して新規ファイルを作成し、[ファイル] タブ - [アカウント] メニューの [更新オプション] をクリックし、[更新を無効にする] をクリックします。以下のように、「この製品は更新されません。」と表示されることを確認します。
[caption id="attachment_1465" align="alignnone" width="968"] 図 5. 自動更新の無効化[/caption]
補足) 修正が公開されましたら、自動更新を再開して問題が発生しないより新しいバージョンの更新を適用してください。修正の公開は本記事でお知らせします。
本現象について、更新があり次第随時この記事で公開します。
今回の投稿は以上です。
本情報の内容 (添付文書、リンク先などを含む) は、作成日時点でのものであり、予告なく変更される場合があります。