教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA セル操作】選択した行または列を削除(Delete)する方法を教えて!

構文

Deleteメソッドは、指定した範囲のセルを削除する際に使用します。以下の2つのシンタックスがあります。構文は以下の通りです。

行を削除する場合

構文は以下の通りです。

Worksheets("シート名").Rows("行番号").Delete

解説

Worksheetsのシート名には、行を削除したいシートの名前を指定します。Rowsの行番号には、削除したい行の番号を指定します。例えば、3行目を削除したい場合は、「3」と指定します。

列を削除する場合

構文は以下の通りです。

Worksheets("シート名").Columns("列名または列番号").Delete

解説

Worksheetsのシート名には、列を削除したいシートの名前を指定します。Columnsの列名または列番号には、削除したい列の名前または番号を指定します。例えば、B列を削除したい場合は、「B」と指定します。

使い方

行を削除したい場合は、「Worksheets("シート名").Rows("行番号").Delete」の形式を、列を削除したい場合は「Worksheets("シート名").Columns("列名または列番号").Delete」の形式を使います。

(例1)3行目を削除

Sub DeleteRow()
    Worksheets("Sheet1").Rows(3).Delete
End Sub

(例2)B列を削除

Sub DeleteColumn()
    Worksheets("Sheet1").Columns("B").Delete
End Sub

プログラミング例

以下に、プログラミング例を紹介すます。

Sub DeleteData()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Worksheets("成績表")
    ' 不要なデータを入力
    ws.Range("A1").Value = "氏名"
    ws.Range("B1").Value = "テスト1"
    ws.Range("C1").Value = "テスト2"
    ws.Range("A2").Value = "山田太郎"
    ws.Range("B2").Value = 85
    ws.Range("C2").Value = 92
    ' テスト1の列を削除
    ws.Columns("B").Delete
End Sub

このコードを実行すると、テスト1の列が削除され、テストの成績表からそのデータが消えます。

まとめ

Deleteメソッドを使うことで、指定した行や列を簡単に削除することができます。シートのデータ整理や不要な情報の削除に便利なメソッドです。是非活用してください。