• ベストアンサー

DeleteとClear

シート内の全てのデータを削除して綺麗にしたい場合、 Sub Deleteの場合() Cells.Delete End Sub Sub Clearの場合() Cells.Clear End Sub どちらを使うべきなのでしょうか?

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

  • ベストアンサー
  • keithin
  • ベストアンサー率66% (5278/7940)
回答No.1

>全てのデータを削除して綺麗にしたい 何か残したいものが有るのか無いのか次第です。 例: ・セルの書式設定 ・列幅 ・行高さ 所謂まっさらシートにしたいならdeleteしてください。 「データを消したい」ならclearcontentsします。

i9u8y7hkg
質問者

お礼

まっさらにしたいので、deleteを使うようにします。ありがとうございました。

関連するQ&A

  • 特定の文字(値)だけをクリアしたい

    現在、以下のようなVBAコードを使ってシート内にクリアボタンを作っています。(先日こちらでご教授いただきました) Sub クリア() ActiveSheet.Cells.SpecialCells(xlCellTypeConstants, 23).ClearContents End Sub このコードはシート内のすべての文字(値)を削除します。 管理番号   ←セルの保護をしています ****  ←保護していません 型番     ←保護をしています ****  ←保護していません ****の部分だけを削除したい場合、似たようなやり方では可能でしょうか? ちなみにこの時点で上記コードのクリアボタンを押すと、保護を解除しなさいという、メッセージが出てきます。 保護をしつつ、クリアしたいのですが恐縮ですがご教授ください。

  • Excel VBA データのクリアについて

    Excelファイルで、C列に、2行目から下に全て、条件付き書式を入れています。 そしてA2:E20000セルまでデータが入っており、マクロでこのデータの2行目以下をクリアしたい(1行目はタイトル行)と思います。このとき endR=cells(rows.count,1).end(xlup).row Range(cells(2,1),cells(endR,1)).entireRow.clearContents このコードでは、データのクリア自体は出来るのですが、Excelがデータの終端を2万行目と認識したままになってしまい、ファイルサイズが重くなってしまいます。といってclearContentsの部分をDeleteにしてしまうと、C列に入れた条件付き書式が全て消えてしまいます。データの終端を2行目と認識させ、かつ条件付き書式も削除されないようにする確実な方法はないでしょうか?なおデータは2万行ぴったりとは限りませんし、何度も読み込んだりクリアしたりします。

  • アクティブでない複数のシートのセルのコンテンツを一度でクリアしたい

    エクセルVBAで、アクティブでない複数のシートの所定のセルのコンテンツを一度でクリアしたいのですが、 現在アクティブではないシートをアクティブにしないでclearcontentsするとアプリ定義、オブジェクト定義エラーになってしまいます。 それぞれのシートをアクティブにしないとclearcontentsできないのでしょうか? どなたか教えてください。よろしくお願いします。 ------------------------------------------------------------------------------- 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

  • Excel: シートの一括クリア

    チャートを複数を含む5つのシート(シートの名前: CHT1~CHT5)のVBAで一括にクリアーにしたいです。 マクロの自動記録を使って出来たコードを参考に以下のコードを作りましたが、Cells.Selectのところでエラーになります。 Cells.Selectを消して、コードを走らせる前に、自分で各シートの左上のところをクリックして、シート全域をアクティブ状態にしたら動く様なのです。 VBAではマクロで出てくる Cells.Select は使えないのでしょうか。 何か方法があれば御教示下さい。 Private Sub CommandButton2_Click() Dim i As Integer Dim Name As String For i = 1 To 5 Name = "CHT" + CStr(i) Sheets(Name).Select Cells.Select Selection.Delete Shift:=xlUp Next i End Sub

  • オールクリアボタン VBA どこが間違ってるの?

    VBA初心者です。 設定、部品1、部品2、部品3、部品4と4つのシートがあります。 設定シートにオールクリアボタンを設置し各シートの値だけをクリアする ようにしたいのですが、「subまたはfunctionが定義されていません」という エラーが出てしまいます。 間違ってる箇所とうまくいく方法を教えていただけませんでしょうか? 記述は以下のとうりです。 ちなみにエクセルを開くと全シート保護という設定にしているので まずその解除をしてオールクリアしてまた保護といううふうにしたいです。 Private Sub CommandButton1_Click() '全シート保護解除 Dim sh As Worksheet For Each sh In Worksheets sh.Unprotect Next sh '範囲選択 With Worksheet("部品1").Select Cells.Select 'シートの値だけをクリアする Selection.SpecialCells(xlConstants, 23).ClearContents End With '範囲選択 With Worksheet("部品2").Select Cells.Select 'シートの値だけをクリアする Selection.SpecialCells(xlConstants, 23).ClearContents End With '範囲選択 With Worksheet("部品3").Select Cells.Select 'シートの値だけをクリアする Selection.SpecialCells(xlConstants, 23).ClearContents End With '範囲選択 With Worksheet("部品4").Select Cells.Select 'シートの値だけをクリアする Selection.SpecialCells(xlConstants, 23).ClearContents End With '全シート保護 For Each sh In Worksheets sh.Protect DrawingObjects:=True, Contents:=True, Scenarios:=True Next sh End Sub 以上です、よろしくお願いします。

  • 書式のクリア?

    Excel97です データ末尾まで飛ぶのにCtrl+Endを使っていますが、 データを一部削除したあとで Ctrl+Endを使うと 削除前の末尾セルに飛んでしまいます。 データ削除(行ごと削除しています)後 編集→クリア→すべて を行ってもだめでした。 正しい操作方法をご教示ください

  • エクセルマクロ 条件分岐 条件に合わない列は削除

    マクロ初心者です。 添付のようなデータが30000万行位ありますが、 1)セルAの値が16またはRFの場合はその行のデータをすべて残します 2)セルAの値が上記以外の場合はその行をすべて削除したいのですが 私なりに調べて次のようなマクロを記録しました。 Sub macro1() Dim i As Integer For i = 1 To 30000 If Cells(i, 1).Value = "16" Or Cells(i, 1).Value = "RF" Then Cells(i, 1) = Cells(i, 1) Else Rows(i).Delete End If Next i End Sub 1)の部分は何とか動いてくれているみたいですが 2)の条件に合わない行の削除の記録がぜんぜんだめみたいで途方に暮れています。 わかる方がいらっしゃいましたら是非ご教授願います。

  • 空白のセルを行削除する。EXCELマクロなのですが・・

    VBA初心者です。 データーをHPから、単純にコピーしてきて、 EXCELに貼り付けています。 フィルターをかけても、画像かなにかがセルに張り付いているのか、 空白行をすべて削除できません。 いろいろ試して(HPから、空白セルの行削除について書かれてあるマクロを貼り付けて)動いたのが、このVBAです。 しかし、遅いので、早いVBAに簡略できればいいのですが。。 大体、1000行ぐらいの文字を貼り付けて、3/1ぐらいが空白行です。A行のセルの空白のみを、削除したいのですが。  まったくの素人なので、わかりません。 どうかよろしくお願いいたします。 Sub 空白の削除() x% = Worksheets("sheet1").Range("A65536").End(xlUp).Row For i = x% To 1 Step -1 If Worksheets("sheet1").Cells(i, 1).Value = "" Then Worksheets("sheet1").Rows(i).Delete Next End Sub

  • シートのイベント VBA

    シートをクリックしたらシートをクリアしたいのですが クリックするセルがA1の場合は、マクロを実行させたくないのですが 下記のコードだとエラーになってしまいます。 Private Sub Worksheet_SelectionChange(ByVal Target As Range) If Not Target.Range = Range("a1") Then Cells.Clear End If End Sub ”Range("a1")でなければ、Cells.Clearする” にはどうすればいいですか?

  • 簡単なVBA

    エクセルで特定の列データを削除したいのですが シンプルな形を教えてください ちなみに今は以下のようなVBAを使っています。 Sub 特定の列を削除する() For i = Cells(1, Columns.Count).End(xlToLeft).Column To 1 Step -1 If Cells(1, i) = "りんご" Then Columns(i).Delete End If Next i For i = Cells(1, Columns.Count).End(xlToLeft).Column To 1 Step -1 If Cells(1, i) = "みかん" Then Columns(i).Delete End If Next i For i = Cells(1, Columns.Count).End(xlToLeft).Column To 1 Step -1 If Cells(1, i) = "ばなな" Then Columns(i).Delete End If Next i End Sub

専門家に質問してみよう