エクセル雑感
VBAが消えてしまった!マクロが壊れて動かない!

ExcelマクロVBAとエクセル関数についての私的雑感
公開日:2020-05-08 最終更新日:2020-05-09

VBAが消えてしまった!マクロが壊れて動かない!


2020年4月15日に配信されたWindows10用セキュリティ更新プログラムの不具合で、
なんと、VBAが全て消えてしまうという事が発生しています。
今後もあり得る事なので、このような場合の対策について記しておきます。


VBAが消えてしまうとはどんな状態なのか

エクセルファイルを開くと、以下のようなメッセージが出力されます。

始めて開いたファイルか、開いたことのあるファイルかにより、メッセージが違う場合があります。

VBA マクロ VBAが消えてしまった

VBA マクロ VBAが消えてしまった

下のメッセージの場合に、「はい」を選択しても、

VBA マクロ VBAが消えてしまった

結局、どちらのメッセージで、どれを応答したとしても、VBAは消えてなくなってしまいます。

Alt + F11 でVBEを開くと、シートの一覧しか表示されず、標準モジュールが丸ごとごっそり無くなってしまっています。

※このとき、決して上書き保存してはいけません。
バックアップなしに上書き保存してしまったら、VBAを回復することはできなくなります。

ロールバックによる対処

(修正Upd リリース) 4月の更新プログラムでマクロ付きエクセルファイルが読めなくなる不具合への復旧方法の紹介

これは、問題発生する前に戻すという方法です。
4月配信の更新プログラムによる不具合は、3月時点のバージョンへ戻す事により復旧できます。
Office365(Micorsoft365)/2019/2016/2013 はロールバック、Office2010はKBのアンインストールで行ないます。

ここに記載されている通りで良いはずです。
また、同様の内容を画像付きでより詳しく解説しているページも多数ありますので参考にしてください。

全てのPCで上記を行う必要はありません。
また、アッブデートを止めているPCがあれば、それを使ってください。

そして、問題のファイルを開いてVBAの存在を確認出来たら、まずはVBA一式をエクスポートして確保しておきます。
その上で、
コンパイルを行って、問題の出るPCで開いて確認。
VBA一式を削除してインポートし直し、問題の出るPCで開いて確認。
等々、何通りか対処してみましょう。

この辺りで解決すれば良いですが、これでダメなら、とにかく問題の出るPCで開いてしまいましょう。
当然VBAは無くなりますが、シートは残っているはずですので、それで構いません。
エクスポートして確保してあるVBA一式を、インポートもしくはコピペで貼りつけるなりして回復させてください。

VBAだけを別途取り出す

ロールバックは結構面倒ですし、慣れないと何やら難しそうに感じるかもしれません。
以下は最終手段ではありますが、今回の件に限らず、VBA救出の手段として覚えておくと良いでしょう。

以下の操作は、間違った操作によるトラブル防止のため、
元のファイルをコピーし、コピーしたファイルで実行してください。

拡張子を変更する:.xlsmを.zip

以下の手順で実行してください。

1.拡張子の.xlsmを.zipに変更します。
VBA マクロ VBAが消えてしまった

VBA マクロ VBAが消えてしまった

VBA マクロ VBAが消えてしまった

「はい」で変更してください。

2..zipをエクスプローラーで開く
.zipに変更したら、そのファイルをエクスプローラーで開きます。

VBA マクロ VBAが消えてしまった

右クリックメニューの下の方に、
「プログラムから開く」→「エクスプローラー」

VBA マクロ VBAが消えてしまった

3.フォルダxlを開きます。
xlを開いてください。
以下の画像は、たまたま手持ちで発生したファイルになりますので、
細部の構成が若干違うと思いますが、気にしなくて良いです。

VBA マクロ VBAが消えてしまった

4.vbaProject.binをコピーして確保
vbaProject.binこれをコピーして、どこかへ確保してください。
これを仮に、確保VBA(vbaProject.bin)とします。

VBA マクロ VBAが消えてしまった

確保VBA(vbaProject.bin)は後ほど使用します。

5...xlsmに戻しておく
拡張子を.xlsmに戻しておきましょう。
xlsmに戻したら、エクスプローラーは閉じてください。

新規ブックを作成する

以下の手順で実行してください。

1.新規ブックを作成
2.Alt + F11 でVBEを起動
3.標準モジュールの挿入
VBA マクロ VBAが消えてしまった

4.Subの作成
sub aaa
これだけ入力してEnterで構いません。
要は何でも良いので、プロシージャーを1つ作ります。

VBA マクロ VBAが消えてしまった

5.xlsm(マクロ有効ブック)で保存
これを仮に新規xlsmとします。

新規xlsmを.zipにしてエクスプローラーで開く

続けて以下の手順を実行します。

1.新規xlsmの拡張子を.zipに変更
VBA マクロ VBAが消えてしまった

VBA マクロ VBAが消えてしまった

2.右クリックからエクスプローラーで開く
VBA マクロ VBAが消えてしまった

3.フォルダxlを開きます。
xlを開いてください。

VBA マクロ VBAが消えてしまった

4.確保VBA(vbaProject.bin)で置換
vbaProject.binを、確保VBA(vbaProject.bin)で置き換えてください。

5..xlsmに戻す
拡張子を.xlsmに戻してください。
xlsmに戻したら、エクスプローラーは閉じてください。

新規xlsmを開いてVBAを取り出す

新規xlsmを開いてみましょう。

VBA マクロ VBAが消えてしまった

標準モジュールが追加されているのが確認できるはずです。
さらに、元々作成した新規ブックはSheet1だけだったはずですが、シートモジュールまで増えているのも確認できます。
後は、エクスポートして元のファイルでインポートするなり、コードをコピペするなりして回復させてください。



同じテーマ「エクセル雑感」の記事

「ネ申Excel」問題 への同意と反論
「Excel3ステップ理論」3階層システムの応用
「ポケモンを確実に見つける方法」をExcelで数学してみた
エクセルで「もういくつ寝るとお正月」
エクセルで連立方程式を解く(MINVERSE,MMULT)
VBAが消えてしまった!マクロが壊れて動かない!
スピらない スピル数式 スピらせる
難しい数式とは何か?
いくつかの数式の計算中にリソース不足になりました。
無効な前方参照か、コンパイルされていない種類への参照です。
エクセルが起動しない、Excelが立ち上がらない


新着記事NEW ・・・新着記事一覧を見る

第5章:AI×VBAでつまづかない!トラブルシューティングとAIとの付き合い方 |生成AI活用研究(2025-05-20)
第4章:【事例で学ぶ】AIとVBAでExcel作業を劇的に効率化する! |生成AI活用研究(2025-05-20)
第3章:AIを「自分だけのVBA先生」にする!質問・相談の超実践テクニック|生成AI活用研究(2025-05-19)
第2章 VBAって怖くない!Excelを「言葉で動かす」(超入門)|生成AI活用研究(2025-05-18)
第1章:AIって一体何?あなたのExcel作業をどう変える?(AI超基本)|生成AI活用研究(2025-05-18)
AI時代のExcel革命:AI×VBAで“書かない自動化”超入門|生成AI活用研究(2025-05-17)
Geminiと100本ノック 23本目:シート構成の一致確認|生成AI活用研究(5月16日)
AIが問う出版の未来は淘汰か進化か:AIと書籍の共存の道とは|生成AI活用研究(2025-05-16)
Geminiと100本ノック 22本目:FizzBuzz発展問題|生成AI活用研究(5月15日)
すぐに使える!生成AI プロンプト作成 実践ガイド|生成AI活用研究(2025-05-15)


アクセスランキング ・・・ ランキング一覧を見る

1.最終行の取得(End,Rows.Count)|VBA入門
2.繰り返し処理(For Next)|VBA入門
3.変数宣言のDimとデータ型|VBA入門
4.セルのコピー&値の貼り付け(PasteSpecial)|VBA入門
5.ひらがな⇔カタカナの変換|エクセル基本操作
6.RangeとCellsの使い方|VBA入門
7.メッセージボックス(MsgBox関数)|VBA入門
8.セルのクリア(Clear,ClearContents)|VBA入門
9.FILTER関数(範囲をフィルター処理)|エクセル入門
10.条件分岐(Select Case)|VBA入門




このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。


記述には細心の注意をしたつもりですが、
間違いやご指摘がありましたら、「お問い合わせ」からお知らせいただけると幸いです。
掲載のVBAコードは動作を保証するものではなく、あくまでVBA学習のサンプルとして掲載しています。
掲載のVBAコードは自己責任でご使用ください。万一データ破損等の損害が発生しても責任は負いません。



このサイトがお役に立ちましたら「シェア」「Bookmark」をお願いいたします。
本文下部へ