Excelマクロ・VBA セル(行・列)のクリア
Excelのマクロ・VBAによるセル(行・列)のクリア方法を紹介します。
解説
RangeまたはCellsに対してClear系メソッドを利用して操作します。
用途に合わせてクリアする対象を選びます。
メソッド名 | クリア対象 |
---|---|
Clear | 全て |
ClearComments | コメント |
ClearContents | 値と数式 |
ClearFormats | 書式 (色や罫線、条件付き書式など) |
ClearNotes | コメント |
ClearOutline | アウトライン |
ClearHyperlinks | ハイパーリンク |
セルをクリア
対象をセルアドレスで指定(Range)
単独のセル
Range(“セルアドレス")に対してClear系メソッドを使用します。(赤字は適宜変更)
Range("セルアドレス").Clear
Worksheets(“シート名")を利用すると対象シートも指定します。
シートを指定しない場合はアクティブシートのセルが対象になります。
Worksheets(インデックス) の場合は最も左のシートを1とした連番を指定します。
以下コード例です。
' アクティブシートのA1セルを削除して左にシフト
Range("A1").Clear
' Sheet1のB1セルをクリア
Worksheets("Sheet1").Range("B1").Clear
' 最も左にあるシートのA2セルをクリア。1つ数字を増やすと1つ右のシート
Worksheets(1).Range("A2").Clear
セル範囲
Rangeでセル範囲を指定してClear系メソッドを利用すると範囲に対して削除を行います。
Range("セル範囲のアドレス").Clear
省略していますが、 Worksheets指定も可能です。
以下コード例です。
' A1~C3の値をクリア
Range("A1:C3").Clear
' A1~C3の値をクリア
Range("A1", "C3").Clear
' 離れた範囲A1~C3とE10~H15の値をクリア
Range("A1:C3,E10:H15").Clear
対象を行数・列数で指定(Cells)
Cells(行数,列数)に対してClear系メソッドを使用します。
Cells(行数,列数).Clear
Worksheets(“シート名")を利用すると対象シートも指定します。
シートを指定しない場合はアクティブシートのセルが対象になります。
Worksheets(インデックス) の場合は最も左のシートを1とした連番を指定します。
以下コード例です。
' アクティブシートのA1セルをクリア
Cells(1,1).Clear
' Sheet1のB1セルをクリア
Worksheets("Sheet1").Cells(1,2).Clear
' 最も左にあるシートのA2セルをクリア
Worksheets(1).Cells(2,1).Clear
行をクリア
単独行
Rowsに対してClear系メソッドを使用します。
Rows(行数).Clear
または Range(“セルアドレス").EntireRowに対してClear系メソッドを使用します。
このセルアドレスは行が合っていれば、どの列でも構いません。
Range("セルアドレス").EntireRow.Clear
RowsとRangeはどちらを利用しても構いませんが、
行は常に数値で指定するためRowsの方が扱いやすいでしょう。
なおWorksheets(“シート名")を利用すると対象シートも指定します。
シートを指定しない場合はアクティブシートのセルが対象になります。
Worksheets(インデックス) の場合は最も左のシートを1とした連番を指定します。
' アクティブシートの1行目をクリア
Rows(1).Clear
' アクティブシートの1行目をクリア
Range("A1").EntireRow.Clear
' Sheet1の1行目をクリア
Worksheets("Sheet1").Rows(1).Clear
' 最も左にあるシートの1行目をクリア。1つ数字を増やすと1つ右のシート
Worksheets(1).Range("A1").EntireRow.Clear
複数行
Rangeで複数行を指定してClear系メソッドを利用すると複数行に対してクリアを行います。
Range("セル範囲のアドレス").Clear
以下コード例です。
' アクティブシートの1~3行目をクリア
Range("1:3").Clear
Rows("1:3").Clear
' Sheet1の1~3行目をクリア
Worksheets("Sheet1").Range("1:3").Clear
' 最も左にあるシートの1~3行目をクリア。1つ数字を増やすと1つ右のシート
Worksheets(1).Range("1:3").Clear
列をクリア
単独列
Columnsに対してClear系メソッドを使用します。
Columns(列数).Clear
Columns(列名).Clear
またはRange(“セルアドレス").EntireColumnに対してClear系メソッドを使用します。
このセルアドレスは列が合っていれば、どの行でも構いません。
Range("セルアドレス").EntireColumn.Clear
RowsとRangeはどちらを利用しても構いません。
数値、列名、セルアドレスのどれで指定したいか、
その時々で都合の良い方を選択しましょう。
なおWorksheets(“シート名")を利用すると対象シートも指定します。
シートを指定しない場合はアクティブシートのセルが対象になります。
Worksheets(インデックス) の場合は最も左のシートを1とした連番を指定します。
' アクティブシートの1列目をクリア
Columns(1).Clear
' アクティブシートのA列をクリア
Columns("A").Clear
Range("A1").EntireColumn.Clear
' Sheet1の1列目をクリア
Worksheets("Sheet1").Columns(1).Clear
' 最も左にあるシートの1列目をクリア。1つ数字を増やすと1つ右のシート
Worksheets(1).Range("A1").EntireColumn.Clear
複数列
Rangeで複数列を指定してClear系メソッドを利用すると複数列に対して削除を行います。
Range("セル範囲のアドレス").Clear
Columnsを併用すると数値で指定可能です。
Range(Columns(列数), Columns(列数)).Clear
以下コード例です。
' アクティブシートのA~C列をクリア
Range("A:C").Clear
Columns("A:C").Clear
' Sheet1のA~C列をクリア
Worksheets("Sheet1").Range(Columns(1), Columns(3)).Clear
' 最も左にあるシートのA~C列をクリア。1つ数字を増やすと1つ右のシート
Worksheets(1).Range("A:C").Clear
Office スクリプト(オンライン版)の場合
以下のコードで行います。(赤字は適宜変更)
// A1セルをクリア
workbook.getWorksheet("Test").getRange("A1").clear(ExcelScript.ClearApplyTo.contents);
詳細はこちら。