- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アクティブでない複数のシートのセルのコンテンツを一度でクリアしたい)
アクティブでない複数のシートのセルのコンテンツを一度でクリアする方法
このQ&Aのポイント
- エクセルVBAで、アクティブでない複数のシートの所定のセルのコンテンツを一度でクリアする方法について質問しています。
- 現在アクティブではないシートをアクティブにしないでclearcontentsするとアプリ定義、オブジェクト定義エラーになるため、各シートをアクティブにしないとclearcontentsできないのか疑問です。
- アクティブでない複数のシートのセルのコンテンツを一度でクリアする方法について教えてください。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
ANo.1です。 文字化けだったのですね。 多分ですが、 Sheets("1").Range(Cells(6, 3), Cells(6, 8)).ClearContents この場合Rangeはシート名"1"にかかりますが、Cellsはアクティブな シートにかかってしまいます。 位置が決まっているのなら Sheets("1").Range("C6:H6").ClearContents 位置が可変するようなら、 With Sheets("1") .Range(.Cells(6, 3), .Cells(6, 8)).ClearContents End With のようにWith~End Withでくくり、Cellsの前に"."をつけてあげれば シート名"1"にかかりますよ。 その他のシートも同様の方法で試してみて下さい。
その他の回答 (1)
- n-jun
- ベストアンサー率33% (959/2873)
回答No.1
シート名の指定が違うのでは? Sheets("\1\")~ ""の位置が違っているように思いますけど。
質問者
補足
すみません。 コピペしたら文字化けしてしまいました。 Sub CLEAR_CONTENTS () Sheets("1").Range(Cells(6, 3), Cells(6, 8)).ClearContents Sheets("2").Range(Cells(6, 3), Cells(6, 8)).ClearContents Sheets("3").Range(Cells(6, 3), Cells(6, 7)).ClearContents End Sub 宜しくお願いいたします。
お礼
n-junさん、ご回答ありがとうございます。 お教えいただいたとおりにしてみましたら、うまくいきました。 なるほど、cellsはアクティブなシートのA1を基点としているのですね。 ありがとうございました!!