プロが教える店舗&オフィスのセキュリティ対策術

エクセル2010のマクロを作ったのですが、順調に動いている途中で、VBA起動後に編集を開始すると、直後にクラッシュしてしまいます。

クラッシュ開始の直前に、ネットで見かけた便利そうな文を追加したら、クラッシュし始めました。

エラーの文章は
この問題の説明に役立つファイル:
c:\temp\444228.cvr
c:\temp\WERE10D.tmp.hdmp

と表示されるのですが、全く意味が分かりません。

コントロールパネルから、
エクセルの修復
は実施しましたが、状況は変わりません。

マクロ添付可能ファイルにしているので、元となったエクセルファイルは別にバックアップを取っているのですが、マクロの文章を記録していないので、また一からやり直すのが嫌なので、なんとか復旧できないか、もしくはマクロの文章だけでも抜き出せないか?と思っています。

このファイルは捨てるべきなのでしょうか?

また、マクロは個人ブックなどに記録すべきなのでしょうか?

質問者からの補足コメント

  • エクセル起動→VBA起動→VBAの文章が書かれている部分をスクロール→Microsoft Exelは動作を停止しました、の小さなウィンドウが立ち上がる。

    詳細の表示
    この問題の説明に役立つファイル:
    c:\temp\251442.cvr
    c:\temp\WERF123.tmp.hdmp

    こういう状況で、コードを取り出す作業の手前でエラーが発生して動かなくなります。

    捨てでしょうか?

    No.1の回答に寄せられた補足コメントです。 補足日時:2015/04/21 10:55

A 回答 (3件)

こんにちは。



>ネットで見かけた便利そうな文を追加したら、
文というのは、マクロのコードのことですか?

>マクロは個人ブックなどに記録すべきなのでしょうか?
個人用マクロブックには入れる場合は、非常に気をつけなくてはなりません。十分に検証し、確実なもの・小さなコードだけで、大きなものは入れてはいけません。立ち上がりが遅くなります。

「クラッシュ」という言葉をお使いになっていますが、「クラッシュ」は、フリーズとは違い、突然に終わってしまうことを意味していますが、もし、そうなら、もう、そのファイルは使わないほうがよいです。私などかなり実験的なことをしていますが、それでも、「クラッシュ」は何年に1度ぐらいしかありません。昨今では、Active X のツールで、コントロールの追加などもあるかもしれませんが、「クラッシュ」にはならないように思います。

もし、フリーズなら、まだ救いはあります。

ファイルが開けるなら、そこから、コードを取り出して、見せれば済む話でしょうけれども、実際、ご質問者さんが分からないといって、現象だけ説明されても、回答者側としては、答えようがありません。

一般論としては、マクロのコードというものは、捨ててこそ、次がある、と思っています。
この回答への補足あり
    • good
    • 0

こんにちは。



#1の回答者です

>エクセル起動→VBA起動→
自動実行?(もし、自動実行だったら、それはとりあえずやめたほうがよいです)

>c:\temp\251442.cvr
>c:\temp\WERF123.tmp.hdmp
ダンプして、その内容を読めればわかるらしいのですが、私は、やったことがありません。わかる人はわかるのでしょうけれども、いろいろツールも必要なようです。

>コードを取り出す作業の手前でエラーが発生して動かなくなります。
いずれにしても、取り出せないわけですよね。VBAのコードで、セルやオブジェクトを、コードの中で表記していませんか?いわゆるアンタッチャブルなところを触って、フリーズすることが多いですね。

私は、コードを取り出せない時は、一応、キャプチャーで画像を取ることがありますが、あまり役にたったことはありません。

ただ、私が調べる方法としては、Excelをセーフモードで立ち上げて、マクロを、ほとんど最初から、ステップモードで動かしてみます。これでダメなら諦めたほうがよいかもしれません。

p.s. 私は、VBAを実行しながら、ブレークポイントやStopを置いて修正しています。(^^; でも、そういうコーディングは、尋常とは言えませんね。HTMLの場合ですが、未だ、ソースを読むレベルには至っていません。だから、[1.オブジェクトの中身に何が返っているか分からない。2.オブジェクトの型自体が分からない。]これらは、実行中でしか分からないからです。
    • good
    • 0

VBA実行中に編集することはできません。


おそらく長い長い処理の途中でいじろうとしたのでしょうが
そのようなことをしてはいけません。

 停止して(させて)から問題点を探して修正し、再び実行してください。

 なお、実行中にセル入力可能状態にしたときには実行中のコードが停止します。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!