見出し画像

【VBA】複数のセルを選択・削除する方法

どうも、HALUです。

今回はエクセルのデータを消したい時に使えるコードを2通り紹介します。
まず初めに、とある表のデータをまとめて選択する方法を紹介します。コードは以下の通り。

'----------- 連続セルの選択
Sub select_cells()
   '----------- セルの3BからCtrl↓+Ctrl→までの範囲を選択
   ThisWorkbook.Worksheets(1).Range(Cells(3, 2), Cells(3, 2).End(xlToRight).End(xlDown)).Select
End Sub

Rangeは引数を2つ持ち、開始のセル番地と終了のセル番地を指定することでその2つのセルの間に含まれるセルを全て指定することが出来ます。

画像1

元が上記のような表があったとします。
次からコードの解説をします。

End()はExcelで以下の操作をした時と同じです。
・あるセルからCtrl+カーソルキーを押す

つまりEnd(xlToRight)はCtrl+→を押した時と同じ箇所のセルを指定することが出来ます。上記コードであれば、セルの(3,2)の場所から一番右の(データが存在する)セルを指すことになります。

ちなみに、Ctrl+↓だったらEnd(xlToDown)、Ctrl+↑を使いたいならEnd(xlToUp)などと括弧の中身を変更します。

そして、文末の.Selectは左で指定していた範囲に対して選択状態にするためのコードになります。

これを実行することで、

画像2

上の図のように(3,2)のセルから右下の範囲まで全てのセルが選択されました!

続いて、この範囲のセルを削除するところまで実装したコードを紹介します。先ほどのコードが理解出来ていればこちらは非常に簡単です。

'----------- 連続セルの削除
Sub delete_cells()
   ThisWorkbook.Worksheets(1).Range(Cells(3, 2), Cells(3, 2).End(xlToRight).End(xlDown)).Delete
End Sub

さて、先ほどのコードと何が変わったでしょうか!
間違い探しのようですが、コードで変わったのはsub名と、長いコードの一番後ろが.Selectから.Deleteになってます。たったこれだけで先ほどの範囲に含まれるデータを全て削除できます。

実行結果

画像3

綺麗に削除されています。


オンライン家庭教師の申し込みはこちらから




この記事が気に入ったらサポートをしてみませんか?