指定行(ヘッダー行)以下を全て削除したい
エクセル上でマクロのログを残す場合など、指定行以下を全て削除したい要望があります。
指定行=ヘッダー行でその部分まで消されるととても面倒です。
指定行以下を削除するマクロは、コード一行で表せます。どしどしコピペで使いましょう。
指定行(ヘッダー行)以下を全て削除するサンプルコード
'■指定行以下を全て行削除するサンプルコード Public Sub sample_delete_rows() '■2行目から1048576行目(Cells.Rows.Count)まで削除する/Excel2007以降 Rows("2:" & Cells.Rows.Count).Delete End Sub
注意点
- Rows(2:)の2の部分を変更する事で、任意の行以下を削除する事が可能です。
- Deleteだと行削除です。値のみ削除したい場合はClearContentsを使用します。詳細は下記記事参照。
【VBA基本】セルやセル範囲の値を消去する - 今回はRowsの前にシート名を付与していない為、ActiveSheetの2行目以下をまとめて削除します。
下記記事参考に、本来はシート名を付与しましょう。
マクロ初級者必読-ワークシート名を変数にSetし、短い名前で利用する - 本マクロは一例です。RangeをEntireRow.Deleteで行削除するなど別方法もあります。
- Cells.Rows.Countは最終行を取得する時に使う処理です。
関連記事
共有のエクセルファイルを誰が開いたか記録する【ExcelVBA】
【VBA基本】セルやセル範囲の値を消去する
マクロ初級者必読-ワークブック名を変数にSetし、短い名前で利用する
マクロ初級者必読-ワークシート名を変数にSetし、短い名前で利用する
ExcelVBAマクロ「最終行」「最終列」の判断処理をパーツ化する
ExcelVBAマクロ-他ブック他シートの「最終行」「最終列」取得処理をパーツ化する
ExcelVBAマクロ-ヘッダー行を加味して「最終行」取得処理をパーツ化する
コメント