【26】VBAでエクセルのセルの値を消去・削除しよう

記事で紹介しているエクセル
・エクセル2019 [64ビット版]

前回はVBAを使ってセルの値を入力しました。

今回はセルの値を消去と削除の方法を解説いたします。

目次

VBAを使ってセルの値を消去する

消去はエクセル操作で言うところの「クリアにあたります。

画像1:消去(クリア)

サンプルコードと実行結果を以下に用意しました。

Sub test23()
    
    '--------------------------------------------------
    '値の消去
    '--------------------------------------------------
    'セルA1:A2の値を消去[全て]
    Range("A1:A2").Clear
    
    'セルC5:D8の値を消去[全て]
    Range("C5:D8").Clear
    
    'セルA4の値を消去[書式]
    Range("A4").ClearFormats
    
    'セルA5の値を消去[内容]
    Range("A5").ClearContents
    
End Sub
画像2:消去(クリア)の実行

消去方法は、値の入力と同じように、Rangeオブジェクトのメソッドから実行できます。

それぞれ指定した範囲に対して、数種類用意されたClearメソッドを実行しています。

Clearメソッドは以下の表の通りです。

消去のメソッド名消去する対象
Clear全てを消去
ClearContents値・数式を消去
ClearFormats書式を消去
ClearCommentsコメントを消去
ClearHyperlinksハイパーリンクを消去
ClearNotesコメントを削除
ClearOutlineアウトラインを消去
表:Clearメソッド

これらのメソッドと、範囲を指定する事で、セルに入力された情報を消去可能になります。

VBAを使ってセルの値を削除する

今度は削除について解説いたします。

削除はエクセルの「削除」と同じです。

画像3:削除

サンプルコードと実行結果を以下に用意しました。

Sub test23a()
    
    '--------------------------------------------------
    '値の削除
    '--------------------------------------------------
    'セルA1を削除(上方向にシフト)
    Range("A1").Delete
    
    'セルB1を削除(左方向にシフト)
    Range("B1").Delete Shift:=xlShiftToLeft
    
    'セルB1を削除(行全体)
    Range("D8:D9").EntireRow.Delete
    
End Sub
画像4:削除の実行

エクセル操作と同様に、まずは削除する範囲を決めて、Deleteメソッドを実行します。

削除の際にはシフトする方向を4つの内1つを選択しますが、指定がなければデフォルトでは「左方向にシフト」になります。

シフトの指定は以下の表の通りです。

シフト方向指定方法
左方向にシフト.Delete Shift:=xlToLeft
上方向にシフト.Delete Shift:=xlUp
行全体を削除.EntireRow.Delete
列全体を削除.EntireColumn.Delete
表:削除後のシフト指定

Deleteメソッドとシフト方向を指定する事で、エクセルのセルや行の削除が可能になります。

よかったらシェアしてね!
目次
閉じる