前回はVBAを使ってセルの値を入力しました。
今回はセルの値を消去と削除の方法を解説いたします。
目次
VBAを使ってセルの値を消去する
消去はエクセル操作で言うところの「クリア」にあたります。
サンプルコードと実行結果を以下に用意しました。
Sub test23()
'--------------------------------------------------
'値の消去
'--------------------------------------------------
'セルA1:A2の値を消去[全て]
Range("A1:A2").Clear
'セルC5:D8の値を消去[全て]
Range("C5:D8").Clear
'セルA4の値を消去[書式]
Range("A4").ClearFormats
'セルA5の値を消去[内容]
Range("A5").ClearContents
End Sub
消去方法は、値の入力と同じように、Rangeオブジェクトのメソッドから実行できます。
それぞれ指定した範囲に対して、数種類用意されたClearメソッドを実行しています。
Clearメソッドは以下の表の通りです。
消去のメソッド名 | 消去する対象 |
---|---|
Clear | 全てを消去 |
ClearContents | 値・数式を消去 |
ClearFormats | 書式を消去 |
ClearComments | コメントを消去 |
ClearHyperlinks | ハイパーリンクを消去 |
ClearNotes | コメントを削除 |
ClearOutline | アウトラインを消去 |
これらのメソッドと、範囲を指定する事で、セルに入力された情報を消去可能になります。
VBAを使ってセルの値を削除する
今度は削除について解説いたします。
削除はエクセルの「削除」と同じです。
サンプルコードと実行結果を以下に用意しました。
Sub test23a()
'--------------------------------------------------
'値の削除
'--------------------------------------------------
'セルA1を削除(上方向にシフト)
Range("A1").Delete
'セルB1を削除(左方向にシフト)
Range("B1").Delete Shift:=xlShiftToLeft
'セルB1を削除(行全体)
Range("D8:D9").EntireRow.Delete
End Sub
エクセル操作と同様に、まずは削除する範囲を決めて、Deleteメソッドを実行します。
削除の際にはシフトする方向を4つの内1つを選択しますが、指定がなければデフォルトでは「左方向にシフト」になります。
シフトの指定は以下の表の通りです。
シフト方向 | 指定方法 |
---|---|
左方向にシフト | .Delete Shift:=xlToLeft |
上方向にシフト | .Delete Shift:=xlUp |
行全体を削除 | .EntireRow.Delete |
列全体を削除 | .EntireColumn.Delete |
Deleteメソッドとシフト方向を指定する事で、エクセルのセルや行の削除が可能になります。