更新日:、 作成日:

VBA セルをクリアする (Range.Clear)

はじめに

Excel VBA マクロでセルをクリアする方法を紹介します。

Range("B1").Clear または Cells(1, 2).Clear メソッドから、セル「B1」のすべてを削除できます。

ClearContents メソッドから、値と数式を削除できます。書式などは残ります。

ClearFormats メソッドから、書式 (色や罫線) を削除できます。値や数式は残ります。

セルの削除するには「セルを削除する」をご覧ください。
セルを範囲指定するすべての方法は「セルを範囲指定して取得する」をご覧ください。

セルをクリアする

セルをクリアするメソッドはいくつもあります。クリアする目的にあったものを使用します。

メソッド名 クリアするもの
Clearすべて
ClearCommentsコメント
ClearContents値と数式
ClearFormats書式 (色や罫線、条件付き書式など)
ClearNotesコメント
ClearOutlineアウトライン
ClearHyperlinks
(Excel 2010 以降)
ハイパーリンク

Range の引数にセル名を指定すると、そのセルをクリアします。

セル「A1」をクリアするには Range("A1").Clear を入力します。

Range("A1").Clear
1

Cells の引数にセルの行と列の番号を指定すると、そのセルをクリアします。

行「2」、列「A」をクリアするには Cells(2, 1).Clear を入力します。

Cells(1, 1).Clear ' A1
Cells(2, 1).Clear ' A2
Cells(1, 2).Clear ' B1
Cells(2, 2).Clear ' B2

セルの範囲をクリアする

セルの範囲「A1」~「B2」をクリアするには Range("A1:B2").Clear または Range("A1", "B2").Clear を入力します。

Range("A1:B2").Clear
Range("A1", "B2").Clear

シート全体のセルをクリアするには Cells.Crear を入力します。

Cells.Clear

別シートのセルをクリアする

シートを指定するには Worksheets の引数にシート名またはインデックスを指定します。

Sheet1 を指定するには Worksheets("Sheet1") または Worksheets(1) を入力します。

sheet1
' Sheet1 のセル「A1」をクリア
Worksheets("Sheet1").Range("A1").Clear
Worksheets(1).Range("A1").Clear

' Sheet2 のセル「A1」をクリア
Worksheets("Sheet2").Range("A1").Clear
Worksheets(2).Range("A1").Clear

Sheet1 に Range や Cells を入力すると、自身のシートのセルになります。自身を表す Me. が省略されています。

' どちらも同じコード
Range("A1").Value = "Sheet1"
Me.Range("A1").Value = "Sheet1"

標準モジュールに Range や Cells を入力すると、開いているシートのセルになります。アクティブシートを表す ActiveSheet. が省略されています。

' どちらも同じコード
Range("A1").Value = "アクティブ"
ActiveSheet.Range("A1").Value = "アクティブ"