• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:Excel VBAの不思議な現象について)

Excel VBAの不思議な現象について

このQ&Aのポイント
  • Excel VBAでの特定のコードを実行すると、稀に予期しない動作が発生します
  • 具体的には、新規ブックに追加されるシートが正しくなく、元のブックが保存されることがあります
  • この現象の原因は不明であり、エラーが出ずに処理が続行するため困っています

質問者が選んだベストアンサー

  • ベストアンサー
  • ap_2
  • ベストアンサー率64% (70/109)
回答No.3

重いシートだとたまにあるっぽいですよ、ソレ。 > つまり、ActiveworkbookをMENUであると コピー完了を待ちきれずに処理が進んじゃう・・・みたいです。どーも、コピーや描画など一部機能は同期がとれなくなるコトがあるらしく、不思議なエラーは他にもいくつか。 記憶曖昧ですが、下手すると不正アクセスで落ちるかも? まぁ、発生が稀なら、エラーチェックとしてブック名を確認。  With ActiveWorkbook   If .Name = "Menu.xls" Then Stop できれば、負荷を減らすために「新ブック作成&シートの内容をひとつずつコピー」がオススメです。分けた方が安定するし、処理が早くなるケースもあります。 新ブック作成なら Set bk = Workbooks.Add と戻り値でブック受け取れるので、他の方が指摘するよーに、Active~の使用を控える意味でもいいですよ。 Active~は便利だけど混乱招くので、慣れてきたら控えたいです。

anzu13
質問者

お礼

回答ありがとうございます。 >コピー完了を待ちきれずに処理が進んじゃう 確かにコピーしたいシートは数値や関数がたくさん入っていて重く、不思議な現象がちょうどそんな感じなので、納得です。 アドバイスも含めてとても参考になりました。 やはり変数を使った記述に書き換えたいと思います。

その他の回答 (2)

  • TAKA_R
  • ベストアンサー率32% (26/79)
回答No.2

ActiveWindow →ThisWorkbook にすれば、問題は解決するのでは・・・、と思います。 駄目だったら、どのワークシートがアクティブなのかをはっきりさせてやる。

anzu13
質問者

お礼

回答ありがとうございます。 やはり新規ブックのまま実行するよりも、ブックを一度保存するか変数を使って処理するのがベターですかね… 別の方法を試してみます。

  • watabe007
  • ベストアンサー率62% (476/760)
回答No.1

>途中でエラーが出て止まってくれれば良いのですが、 >間違ったまま最後まで処理が行われてしまうので困っています。 Application.DisplayAlerts = False を外せは原因が解るかも

anzu13
質問者

お礼

回答ありがとうございます。 DisplayAlertsを消して試してみます。 エラーメッセージが出てくれると良いのですが…

関連するQ&A

専門家に質問してみよう