• ベストアンサー

エクセルで複数のシートのクリアをしたいです

エクセルで複数のシートの、それぞれのデータ(セルの範囲)を一括でクリアできるようマクロを作成したいです。 全くの初心者で何回か頑張っていますが、「インデックスが有効範囲に・・・」や「構文エラー」などが出てうまくいきません(TT) アドバイスをお願いいたします。。。

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

  • ベストアンサー
  • hige_082
  • ベストアンサー率50% (379/747)
回答No.4

ぜひマクロの記録を使用してみてください 使用方法はツールバーの[ツール]-[マクロ]-[新しいマクロの記録]-[OK]で 希望の操作をしてみてください 例えば、シートを選択、セル範囲を選択、DELキー・・・などなど 操作が終了したら、先ほどの[新しいマクロの記録]が[記録終了]に換わっていますので、選択して記録を終了します 後はマクロの実行するだけ、簡単でしょ 時間のあるときにVBAを開いて、コマンドをヘルプで引いたり、値を変更したり勉強すればいいのです 参考までに、質問者さんの希望の操作をマクロ記録してみました -------------------------------------------------------- Sub Macro1() ' ' Macro1 Macro ' マクロ記録日 : 2008/6/15 ユーザー名 : test ' '   Sheets("Sheet1").Select   Range("F8:P12").Select   Selection.ClearContents   Sheets("Sheet2").Select   Range("I4:S7").Select   Selection.ClearContents   Sheets("Sheet3").Select   Range("H6:S12").Select   Selection.ClearContents   Sheets("Sheet4").Select   Range("J6:T11").Select   Selection.ClearContents   Sheets("Sheet5").Select   Range("H7:S12").Select   Selection.ClearContents   Sheets("Sheet6").Select   Range("H7:S12").Select   Selection.ClearContents   Sheets("Sheet7").Select   Range("H7:S12").Select   Selection.ClearContents End Sub --------------------------------------------- このようになりました 勉強する時に解りにくければ ----------------------------------------------- Sub Macro2() ' ' Macro2 Macro ' マクロ記録日 : 2008/6/15 ユーザー名 : test ' '   Sheets("Sheet1").Select   Range("F8:P12").Select   Selection.ClearContents End Sub --------------------------------------------------- のように、操作を区切って記録するとわかりやすいと思います 因みに上記は、シート1を選択、セルF8からP12の範囲を選択、DELキーで選択セル範囲を削除までのマクロ記録です 長々と済みませんでした 頑張って下さい

totoro4726
質問者

お礼

「マクロの記録」というものを知りませんでした! 教えていただいたものでモチロンできたのですが、「マクロの記録」を使って、自分でも少しアレンジして作成してみたら簡単にできました!! ビックリしちゃいました。 とても勉強になり、参考になり、助かりました。 ありがとうございました(≧▽≦)

その他の回答 (3)

  • izmlz
  • ベストアンサー率55% (67/120)
回答No.3

↓のような感じでいかがでしょうか? Sub test()  Dim Sh As Worksheet  Dim Rng As Range    For Each Sh In Worksheets   Select Case Sh.Index    Case 1     Set Rng = Sh.Range("F8:P12")    Case 2     Set Rng = Sh.Range("I4:S17")    Case 3     Set Rng = Sh.Range("H6:S12")    Case 4     Set Rng = Sh.Range("J6:T11")    Case Is >= 5     Set Rng = Sh.Range("H7:S12")   End Select   Rng.ClearContents  Next End Sub

参考URL:
http://www2.odn.ne.jp/excel/waza/macro.html
totoro4726
質問者

お礼

こちらも私が作成していたのとは違っていましたが、これでもできました! いろいろな方法があるのですね・・・ 大変勉強になりました。ありがとうございました(≧▽≦)

  • keirika
  • ベストアンサー率42% (279/658)
回答No.2

Sheet1からSheet3までセル範囲A1からA10までをクリアします。 Sheets("Sheet1").Range("a1:a10").Clear Sheets("Sheet2").Range("a1:a10").Clear Sheets("Sheet3").Range("a1:a10").Clear 適宜必要な箇所を変更してご使用ください。

totoro4726
質問者

お礼

私が作成していたのとは違っていましたが、これでもできました! 勉強になりました。ありがとうございました(≧▽≦)

回答No.1

で、そのソースは? シートが何枚あって、 セルの範囲がどこで、 クリアするアクションがなんであって、 何も分からないまま、すべて仮説で回答を出すのは苦痛です。 この場では恥ずかしがらずに公開しましょう。 どこが間違っているか、そのソースを元に回答できます。 そのほうがtotoro4726さんにとって「すんごく」勉強になりますよ。

totoro4726
質問者

補足

シートは7枚 セル範囲 1枚目 F8:P12       2枚目 I4:S17       3枚目 H6:S12       4枚目 J6:T11       5枚目以降 H7:S12 数式と値をクリアしたいと考えています。 このような補足でよろしいでしょうか?? 申し訳ないです・・・・・

関連するQ&A