Office Hack

Excel VBA(マクロ)を使って行を削除する方法

  • Release

Excelでデータを管理している人の中には、定期的に同じ行を何度も削除するのが面倒だと感じている人もいるのではないでしょうか。

本記事では、Excelで指定した行や空白行をVBAのコードで削除する方法を解説します。

VBAを覚えると仕事の効率が劇的に上がりますので、ぜひこの機会に行削除のVBAを習得してください。

開発タブを表示する

開発タブの表示

VBAを使用するためには、開発タブを表示させる必要があります。

エクセルで開発タブを表示していない場合は、以下の記事を参考に表示させてください。

エクセルの開発タブを表示する方法

VBA(マクロ)を使って行を削除する

VBA(マクロ)を使って指定した行を削除する方法については、下記を参照してください。

行を削除するためのVBA

行(例:3行目)を削除するためのVBAは以下のとおりです。


Sub deleterow03()

    Rows(3).Delete

End Sub

後述の「VBAで行を削除する」セクションでは、実際にこのVBAコードを使って、シートの3行目を削除していきます。

VBAで行を削除する

VBA(マクロ)を使って行(例:3行目)を削除する方法については、以下のとおりです。

作業時間:1分

Visual Basicを選択する
Visual Basicを選択する

①開発タブ、②Visual Basicの順に選択します。

標準モジュールを選択する
標準モジュールを選択する

Microsoft Visual Basic for Applicationsダイアログボックスが表示されました。①挿入タブ、②標準モジュールの順に選択します。

VBAコードを入力する
VBAコードの入力

行を削除するVBAコードを入力します。②SUB/ユーザー フォームの実行を選択し、③×ボタンを押します。

指定した行の削除が完了
行の削除が完了

指定した行(例:3行目)が削除されました。指定した行の削除はこのシートのみで、他のシートには影響していません。

VBA(マクロ)を使って空白行を削除する

このセクションでは、マクロ(VBA)を使って空白行を一括で削除する方法について説明します。

Visual Basicを選択する

セルA1~C8には、空白行が挿入されたデータがあります。ここでは、この空白行を削除するVBAを作成し、起動を行います。

①開発タブ、②Visual Basicの順に選択します。

標準モジュールを選択する

「Microsoft Visual Basic for Applications」ダイアログボックスが表示されました。

①挿入タブ、②標準モジュールの順に選択します。

VBAを入力する

①表示された標準モジュールに、以下のコードを入力します。


Sub Book1()
    Dim a As Long, b As Long
    Dim Office As Range

    With ActiveSheet.UsedRange
        For a = 1 To .Rows.Count
            For b = 1 To .Columns.Count
                If Not IsEmpty(.Cells(a, b).Value) Then Exit For
            Next b

            If b = .Columns.Count + 1 Then
                If Office Is Nothing Then
                    Set Office = .Rows(a).EntireRow
                Else
                    Set Office = Union(Office, .Rows(a).EntireRow)
                End If
            End If
        Next a
    End With
    
    If Not Office Is Nothing Then
        Office.Delete
    End If
End Sub

②Sub/ユーザー フォームの実行を選択し、③×ボタンを押します。

空白行の削除

表から空白行のみが削除されました。