• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:EXCEL VBA 作業用シートの使い回し)

EXCEL VBA 作業用シートの使い回し

このQ&Aのポイント
  • データのあるシートから、一定の条件にあうデータを当初から用意した作業用シート抜き出してきた上で、抜き出したシートの1つの列にあるデータ集から重複のないデータを抜き出すため、advancedfilterを使用しています。
  • 別のサブルーチンを作成して、同一作業用シートを使い回す形で上記の作業を実行すると、表題のみコピーしてデータをコピーしなくなる現象が生じました。
  • 作業用シートを削除して、新たにシートを挿入して作業用シートと名前を付けて、advancedfilterを実行すると、正常に機能しました。このような現象がおきる理由をご教示願います。この現象を避けるには、作業用シートをサブルーチンごとに挿入・削除を繰り返す必要が生じ、処理スピードが落ちると予想されます。よき、アドバイスがあればよろしくお願いします。

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

  • ベストアンサー
noname#32244
noname#32244
回答No.1

直接の回答ではありませんが、 VisualBasicEditorから、 Application.ScreenUpdating = False に設定してステップ実行し、 実際に動いているところを見てデバックしてみると すぐ問題点が判明するかもしれません。 関係ないかもしれませんが、一つ気になる点として、 dim Rows as Double の変数名は、エクセルが混乱してよろしくない気がしますので、 dim lRow as Long などのほうが良い気がします。

yoshio2
質問者

お礼

ご教示ありがとうございます。 重複データなしのデータを抽出するためadvancedfilterを実行する際にCriteriaを指定しないでコードを実行するとVBAが自動的にシート上のセルにCriteriaという名前をつけており、そのCriteriaが残ることが問題なことが分かりました。 このCriteriaという名前を削除するコードを加えたところ、正常に機能するようになりました。 このCriteriaという名前が自動的に作成される現象については、別に質問をしてみたいと思っています。

関連するQ&A