質問: nothing msgbox "判別終了しました。", vbinformation, cnstitle end sub でやって見たのですがただコピーされるだけで上手くいきません。 シート2に移さずシート1で実行した場合は上手くいきました。 なぜシート2に移したら上手くいかなくなるのかわかりません。 教えてください。
回答: プログラム内で複数のシートを扱う場合、cellsやrangeはどのシートのものかを指定する必要があります。省略した場合には、アクティブなシートに対して処理が行われます。 ※なのでコピー後にsheet2をアクティブにするという方法もありますが、 ちゃんとシートを指定したほうが良いと思います。 あとワークシートと正規表現を同じ変数で使いまわしていますが、ワークシートの方はworksheet型の変数を使用した方が良いと思います。 dim 実行結果シート as worksheet set 実行結果シート = worksheets("sheet2") 実行結果シート.cells.clear worksheets("sheet1").columns("a:c").copy destination:=実行結果シート.columns("a:c") for each 判別 in 実行結果シート.range("c2:c65536") ' ←どのシートのrangeかを明確に指定する