それは、弊社お客様より届いた、一通のメールから始まりました。(受信日:2020/4/20)
「今日、添付のExcelツール障害が発生しました。
私のPCでは正常に起動するのですが、他のPCでは同じメッセージが表示されます。ファイルが壊れているのかと思い、改めて納品時のバージョンで試しましたが、現象は全く同じでした。」
早速、添付ファイルを確認したところ、Excelブックを立ち上げると、以下のようなエラーメッセージが表示される、というものでした。
(画面01)
「このブック内の Visual Basic for Application (VBA) マクロは破損しており、削除されました。マクロの破損は現在のファイルに存在する可能性があります。マクロを回復するには、このファイルのバックアップ コピーを開いてください (バックアップ コピーがある場合)」
当該事象については、実は数年前にも、Windowsアップデートの不具合により発生しており、Excelマクロを実装している全ての方が見舞われる事象のため、今回も同日だけで、5社のお客様からお問い合わせをいただきました。
世の中は、”新型コロナウイルス”による「緊急事態宣言」まっただ中…。
それはともかく、添付ファイル画面キャプチャを見ると、すぐに原因が分かりました。
この事象に遭遇すると、回避策を施さないかぎり、Excelマクロは動作しないため、本コラムにて、その影響から解決にいたる一連の流れを、ご紹介させていただきます。
【事象】’ブック名.xlsm’ の一部の内容に問題が見つかりました。
いつものようにExcelファイルを開こうとした瞬間、次のようなエラーメッセージが表示されます。
本不具合は、「突然」発生・遭遇するイメージのため、ファイルが壊れた?パソコンに異常があった?
など、あの手この手で混乱するケースがあるようですが、落ち着いて対処すれば、30分以内の対応で復旧可能です。
「’○○○.xlsm’ の一部の内容に問題が見つかりました。可能な限り内容を回復しますか?
ブックの発行元が信頼できる場合は、[はい]をクリックしてください。」
ここで、[はい(Y)]をクリックすると、次のようなメッセージが表示されます。
<メッセージ内容の文面>
読み取れなかった内容を修復または削除することにより、ファイルを開くことができました。
削除されたパーツ:/xl/vbaProject.bin パーツ(Visual Basic for Applications(VBA))
これを見る限り、あたかも、修復成功?
のような感じですが、実は、そうではありません。
続いて、ファイルを開き直ししてみると…。
再び、「このブック内の Visual Basic for Application (VBA) マクロは…・」のように、
冒頭でご覧いただいた(画面01)のエラーメッセージが表示され、結局、Excelマクロ・システムは使用できません。
つまり、Excelブック内に存在するマクロソース(VBA Project)を削除する事で解決を図ってしまうため、本質的な問題解決に至るどころか、何の解決にもなりません。
【原因】は、Windowsアップデート不具合
結論からお伝えすると、この事象の原因は、VBAProject(プログラム)側の問題ではなく、2020年4月15日に公開・配信されたWindows10用セキュリティ更新プログラムの不具合であり、Officeにあてがうパッチ不具合が原因です。
このため、何が起きているかというと、Microsoftオフィス製品のビルド不具合バージョンが適用されてしまった訳ですので、正常な状態に戻してあげれば良いのです。では、どのように正常な状態に復旧するか、その手順を見てゆきましょう。
(ご注意)本情報は、2020年4月20日の情報ですが、同月29日に不具合ビルド(ビルド 12730.20236)がリリースされ、いったん復旧後の方も、再び同じ事象に遭遇する場合がありますので、その場合でも、落ち着いて、3/10ビルドに戻す事で、ひとまず解決を図ることができます。
(原因判明/修正Upd準備中)4月の更新プログラムでマクロ付きエクセルファイルが読めなくなる不具合への復旧方法の紹介 – 引用
【対応手順1】原因のビルド番号を突き止めメモ!
WindowsアップデートによるOffice製品の不具合影響は、Excelだけに留まりません。もしかして、「Microsoft Access」システムも利用しているとしたら、エラーメッセージは異なるものの、同類の事象が発生している可能性がありますので、検証いただくことをオススメいたします。
まずは、Excelアプリケーションに、今、どのビルド番号が適用されているか、確認します。
不具合が発生している原因のExcelアプリケーションのビルド番号は、
12624.20466 [不具合あり]
ということが分かりましたので、
画面キャプチャを撮り、印刷するか、しっかりメモしておきましょう。
この次のステップでは、不具合のあるOfficeアップデートが適用された状態を、正常動作していた頃のビルド番号に戻します。
この画面の表示は、次の手順で確認できます。
Excelツールバーから、 [ファイル] > [アカウント] を選択すると、上記の画面になります。
【対応手順2】ビルド番号を正常なバージョンに戻そう
原因のビルド番号が判明すれば、正常動作時の状態に戻すだけです。
では、どんな手順なのか。以下のURLページに接続し、現在のビルド番号を確認しておきます。
↓[リンク先] Microsoft 365 Apps の更新履歴 (日付別の一覧)
どうやら、このビルド番号[12624.20466]が悪さをしているようです。続いて、正常な頃のビルド番号を確認しておきます。 表示中のページを下方向にスクロールしてゆき、復元したいリリース日の月次チャネル(ビルド)を確認、メモしましょう。 ここでは、[リリース日]3月10日、[ビルド番号]12527.20278 をメモします。 |
<ポイント> |
[3月10日]12527.20278pan> に戻すことで解決に至る
という結論に行き着きました。
微妙なのですが、直前でも、その1つ前でもありませんでした。
これは、弊社で検証した結果ですが、整理してみると、次のような結果となりました。
[ビルド番号] | [結果] |
12624.20466 | × [2020 年 4 月 15 日] |
12527.20442 | × [2020 年 4 月 14 日] |
12527.20278 | ◎ [2020 年 3 月 10 日] |
【コマンド・プロンプトの起動】
【手順01:コマンド・プロンプト起動】
Officeアップデートを元の状態に戻すには、いくつかの方法がありますが、ここでは、直接、旧ビルド戻す手順を試みます。 ⑴スタートの隣にある検索欄に「コマンド」と入力し、 コマンド・プロンプトを右クリックし、管理者として実行する。 |
<注意>
この検索ボックスが表示されてない方もいるかもしれません。
この場合は、非表示にされているため、画面下のタスクバーを右クリックし、
検索(H)>検索アイコンを表示(W)で再表示できます。
⑵「ユーザーアカウント制御」画面が表示されるので、続いて、「はい」をクリックする。 |
【対応手順4】Excelビルド復元処理
【手順02:Excelバージョン復元】
⑴コマンド・プロンプトで、下記の文字列(※赤文字テキスト)を、[Ctrf+C] でコピーし、[Ctrf+V] で貼り付けする。 |
⑵そのまま、[Enter]キーを押す
⑶コマンド・プロンプトで、下記をコピペする。 |
⑷「xxxxx.yyyyy」をBackSpaceキーで削除し、手順01で確認したビルド番号(12527.20278)を入力 |
⑸修正後、[Enter]キーを押す |
⑺Excelが立ち上がっている場合、下記画面が表示されるので、Excelを保存し、終了させ、続行を押す |
【手順03:Excelバージョン確認】 |
戻したいビルド番号に戻っていればOKです。 |
【再現性】について
Windows10環境下で、Excelビルド番号が、不具合を抱えたバージョン[12624.20466]なら、再現性があります。
【影響】について
本事象は、Windowsアップデートにより、不具合バージョンが適用された場合に生じる不具合であり、Excelマクロ(VBAソース)を含むツール類が動作できない状態となります。
このため、もし社内の他のパソコンで、この問題となるWindowsアップデートが適用されていない場合は、そのパソコンでは問題なく、Excelマクロ(VBAソース)を含むツール類を利用いただけます。
<注意点>
本事象では、いったんExcelファイルを開いた際の修復において問題があります。それは、「VBAProjectソースを削除する」という解決方法を採用してしまうため、そのまま上書き保存を行わないよう注意が必要です。
マクロを確認すれば分かることですが、このWindowsアップデートにより、プログラムソースは削除されているはずです。
Excelファイルそのものを壊すことはありませんので、マクロを含まないExcelブックでは本事象は再現することはありません。
つまり、当該事象は、不具合アップデートが適用された環境下で再現するため、弊社でも、弊社のクライアントでも、全国レベルの不具合となり、英語版を含めれば、世界的な規模でで再現条件を満たしたPCで発生する事象となります。
正常化への手順ポイント
数日後、再び…。 | もはや、イタチごっこ!? |
(1)弊社の確認では、4月15日の不具合を4月20日に修復したものの、4月29日の不具合に再び見舞われる…。といった事象が起きています。Microsoft社が修正版アップデートをリリースしない限り、”イタチごっこ状態”が続きますので、この場合は、Windowsアップデートをしばらく停止するしかありません。(※もちろん自己責任で)
(2)記載内容は、Office365(2019/2016/2013)の対応手順です。Excel2010の場合は、KBファイルの修正が必要となります。
【今後の対応】について
まれに、このようなケースが生じることもありますが、対応としては、Microsoft社が、対応パッチをリリースするまで、Windows自動アップデートを停止するか、その判断は微妙ですが、アップデート停止による「リスク」もありますので、停止のリスクを理解した上で、一定期間のアップデートを停止させるのは良いかもしれません。
【ご注意】記載情報に関するお電話・メールでのサポートは致しかねます。
個別のお問い合わせにつきましては、弊社インシデント・サービスをご検討ください。