• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:アクティブでない複数のシートのセルのコンテンツを一度でクリアしたい)

アクティブでない複数のシートのセルのコンテンツを一度でクリアする方法

このQ&Aのポイント
  • エクセルVBAで、アクティブでない複数のシートの所定のセルのコンテンツを一度でクリアする方法について質問しています。
  • 現在アクティブではないシートをアクティブにしないでclearcontentsするとアプリ定義、オブジェクト定義エラーになるため、各シートをアクティブにしないとclearcontentsできないのか疑問です。
  • アクティブでない複数のシートのセルのコンテンツを一度でクリアする方法について教えてください。

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

  • ベストアンサー
  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.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"にかかりますよ。 その他のシートも同様の方法で試してみて下さい。

hanadiman5
質問者

お礼

n-junさん、ご回答ありがとうございます。 お教えいただいたとおりにしてみましたら、うまくいきました。 なるほど、cellsはアクティブなシートのA1を基点としているのですね。 ありがとうございました!!

その他の回答 (1)

  • n-jun
  • ベストアンサー率33% (959/2873)
回答No.1

シート名の指定が違うのでは? Sheets("\1\")~ ""の位置が違っているように思いますけど。

hanadiman5
質問者

補足

すみません。 コピペしたら文字化けしてしまいました。 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 宜しくお願いいたします。

関連するQ&A