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

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

masahiro yoshida

Last updated on 3月 16, 2022

このチュートリアルでは、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