• ベストアンサー

エクセルVBAでクリアボタンを作ったのですが・・・

エクセルVBAでクリアボタンを作ったのですが、ひとつのシートは表紙でクリアさせず、その他すべてのシートは同じセル範囲をクリアするというボタンを作成したいのですが 「表紙というシートを除いたほかのシート」と宣言したいのですが表現がわかりません。ご回答よろしくお願い致します。

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

  • ベストアンサー
noname#102878
noname#102878
回答No.2

質問文は読み返してから送信しましょう。 「表紙」という名前のシートの他に何枚かシートがある。 「表紙」以外の全シートを「クリア」したい。 「クリア」が意味するものが分かりませんが、こちらで勝手に 「[編集]-[クリア]-[すべて]のコマンドと同じ動作」 というように決めてしまいます。 違うのであれば適宜コードを直してください。 Sub ClearSheets()  Dim mySheet As Worksheet  For Each mySheet In ThisWorkbook.Worksheets   If mySheet.Name <> "表紙" Then    mySheet.Cells.Clear   End If  Next mySheet End Sub

siekana
質問者

お礼

ありがとうございました。大変参考になりました。表現が足らず申し訳ございませんでした。今後ともよろしくお願い致します。

その他の回答 (2)

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.3

Private Sub CommandButton1_Click() Dim sh As Worksheet For Each sh In Worksheets ' MsgBox sh.Name If sh.Name = "表紙" Then Else sh.Range("a1:c13").ClearContents End If Next End Sub Range("a1:c13")をクリアする例。

siekana
質問者

お礼

ありがとうございました。大変参考になりました。今後ともよろしくお願い致します。

  • gatyan
  • ベストアンサー率41% (160/385)
回答No.1

まず、何を基準に 表紙 と判断するのか決めましょう。 特定のセルに 表紙 と入っているとか、シート名が 表紙 になっているとか? 表紙以外のシートのコレクションというのは、自動的には作成できないので、For Each sht In WorkSheets 等で処理するシートを順次切り替えながら、決めた基準に合っていれば表紙なのでクリアしない,それ以外なら特定範囲をクリアというようにすればいいと思います。

siekana
質問者

お礼

ご回答ありがとうございました。これからも勉強させて下さい。

関連するQ&A

専門家に質問してみよう