今朝、仕事を始めようとエクセルのファイルを開けたら
「’ファイル名’ の一部の内容に問題が見つかりました。可能な限り内容を回復しますか?
ブックの開発元が信頼できる場合は、[はい] をクリックしてください。」
と、突然の悲しいメッセージ。
昨日の夕方、そんなおかしなファイルの閉じ方はしていないはず。
とりあえず、
「はい」
をクリックしてファイルを開けたら・・・・
「無い?無い?」
昨日までそこにあった、エクセルマクロのフォームとモジュール達が!!!
影も形もなく(T_T)
不幸なことに、昨日に限ってバックアップファイルを残しておらず、一番新しいファイルでおとついの夕方のファイル。
「昨日一日の作業が全てパーになった・・・・」
しかし、このファイルの壊れ方は今までの経験上、何かおかしい。
正常に終了したファイルが、突然こんなことになるなんて今まで無かった。
で、ググってみると同じ現象に遭われている方がいらっしゃる・・・。
更に調べてみると(以下Microsoft Developerより引用させていただきます)
「Office 2016 クイック実行形式 (C2R) 向けのバージョン 1708 の更新によって、日本語のモジュール名やフォーム名を持つ Office ファイルを開くときにエラーが発生する動作」
という記事を発見。
ポイントを赤文字にさせて頂きました。
1. 現象
Office 2016 クイック実行形式向けの更新 バージョン 1708 (16.0.8431.xxxx) において、モジュール名やフォーム名に日本語が設定された Office のマクロ付きファイルを開こうとすると、以下のようなメッセージが表示され、正常に開くことができません。
この問題は、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 更新の公開状況
2017 年 9 月 19 日現在、バージョン 1708 は Office Insider ファースト / スロー、Monthly Channel (旧 Current Channel)、および Semi-Annual (Targeted) Channel (旧 First Release for Deferred Channel) 向けに公開されています。
3. 対応状況
この動作は製品の問題と判断しており、現在弊社内で修正に向けた作業を行っています。
現時点では、本現象への有効な回避策はありません。以前のバージョンなどでモジュール名およびフォーム名を半角英数字に修正してください。
****************************************
つまりこの現象はOffice 2016のバグで、現時点では解決策が無いということです。
解決策はありませんが、ファイルを復活させる方法はあります。
壊れた(と思われる)ファイルを、Office 2016よりも旧バージョンのOfficeで開くことです。
私も、Excel2010でファイルを開いたら、見事に元通りのファイルを見ることができました。
「ファイルが壊れました」等のメッセージも出ません。
で、Excel2010上で、モジュール名、フォーム名を修正します。
「モジュール名やフォーム名の末尾が日本語 (をはじめとする DBCS 文字) の場合に発生」
これが、今回のエラーの原因なのでモジュール名の末尾の文字を半角数字などに変更し、別名保存。
それから、Excel2016で開いたら、これまた見事に復活!!
ファイルが元通りです(*´▽`*)
Excel2016を以前のバージョンに戻す方法等はMicrosoft Developerのサイトにあります。
本当に、朝一からドキドキの時間を過ごしました。
皆さまもお気を付けくださいませ。
【参考】
Excel2016 ‘ファイル名’ の一部の内容に問題が見つかりました。可能な限り内容を回復しますか?
Excel2016 ‘ファイル名’ の一部の内容に問題が見つかりました。可能な限り内容を回復しますか?続報1
Excel2016 ‘ファイル名’ の一部の内容に問題が見つかりました。可能な限り内容を回復しますか?続報2
VBA(マクロ)作成の前、リボンに開発タブを表示させる(Excel VBA)
ユーザーフォームの作成方法 準備(Excel VBA)
ユーザーフォームのオブジェクトの名前を「UserForm1」から変更する方法(Excel VBA)
ユーザーフォームの上のバー(タイトルバー)の名前を「UserForm1」から変更する(Excel VBA)