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 = "アクティブ"