Return to VBA Code Examples

vba 行や列を丸ごと削除する

このチュートリアルでは、VBAを使用してExcelで行や列を削除するさまざまな方法を紹介します。

行や列を丸ごと削除する

VBAで行全体を削除するには、次のコードを使用します。

Rows(1).Delete

Deleteメソッドで行を削除していることに注意してください。

Rowsオブジェクトを参照する代わりに、 RangeオブジェクトEntireRowと一緒に使うこともできます。

Range("a1").EntireRow.Delete

同様に、列全体を削除する場合は、以下のコードを使用します。

Columns(1).Delete
Range("a1").EntireColumn.Delete

複数の行または列を削除する

同じ方法を使って、複数の行を一度に削除することもできます。

Rows("1:3").Delete

列でもできます。

Columns("A:C").Delete

ここでは、引用符で囲まれた特定の行と列の番号/文字を参照していることに注意してください。 もちろん、範囲のEntireRowを参照することも可能です。

Range("a1:a10").EntireRow.Delete

注:以下の例は、行の削除のみを示していますが、上で見たように、列の削除とほぼ同じ構文です。

空白行・空白列の削除

この例では、行全体が空白の場合、その行を削除します。

Sub DeleteRows_EntireRowBlank()

    Dim cell As Range

    For Each cell In Range("b2:b20")
        If Application.WorksheetFunction.CountA(cell.EntireRow) = 0 Then
            cell.EntireRow.Delete
        End If
    Next cell

End Sub

Excelのワークシート関数:CountAを利用しています。

セルが空白の場合、行を削除する

行内の特定の列が空白の場合、その行を削除します。(ここではB列)

Range("b3:b20").SpecialCells(xlCellTypeBlanks).EntireRow.Delete

セルの値に基づいて行を削除する

これは、範囲をループして、その行の特定のセル値が「削除」となっている場合に行を削除するものです。

Sub DeleteRowswithSpecificValue()

    Dim cell As Range

    For Each cell In Range("b2:b20")
        If cell.Value = "delete" Then
            cell.EntireRow.Delete
        End If
    Next cell

End Sub

その他の行と列の削除の例

重複した行の削除

このコードは、ある範囲内の重複する行をすべて削除します。

Range("b2:c100").RemoveDuplicates Columns:=2

Columns:=2を設定していることに注意してください。これは、行が重複しているかどうかを検討する際に、データの最初の2つの列の両方をチェックするようにVBAに指示します。重複は、両方の列で値が重複している場合にのみ検出されます。

もしこれを1にしていたら、最初の列だけで重複がチェックされていたでしょう。

テーブルの行の削除

ListObjectsを参照して、Tableの2行目を削除するコードです。

ThisWorkbook.Sheets("Sheet1").ListObjects("list1").ListRows(2).Delete

フィルタリングされた行の削除

フィルタリング後に表示されている行のみを削除する場合。

Range("b3:b20").SpecialCells(xlCellTypeVisible).EntireRow.Delete

範囲内の行を削除する

このコードでは、範囲内のすべての行が削除されます。

Range("a1:a10").EntireRow.Delete

選択された行の削除

選択されている行をすべて削除します。

Selection.EntireRow.Delete

最終行の削除

B列の最後に使用された行を削除します。

Cells(Rows.Count, 2).End(xlUp).EntireRow.Delete

2を1に変更することで、A列の最後に使用された行を削除することができます。

Cells(Rows.Count, 1).End(xlUp).EntireRow.Delete

番号で列を削除する

列の番号で削除する場合は、次のようなコードを使用します。

Columns(2).Delete
vba-free-addin

VBA Code Examples Add-in

Easily access all of the code examples found on our site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(No installation required!)

Free Download

Return to VBA Code Examples