- 公開日:
- 更新日:
Excel VBA(マクロ)を使って行を削除する方法
Excelでデータを管理している人の中には、定期的に同じ行を何度も削除するのが面倒だと感じている人もいるのではないでしょうか。
本記事では、Excelで指定した行や空白行をVBAのコードで削除する方法を解説します。
VBAを覚えると仕事の効率が劇的に上がりますので、ぜひこの機会に行削除のVBAを習得してください。
Excelを使った日付選択のマクロを無料でダウンロード!
Excelでカレンダーから日付を入力できるマクロを無料でダウンロードできます。コードを変更すれば、カレンダーの背景色や、今日の日付の色を変更したりとカスタマイズすることも可能です。
開発タブを表示する
VBA(マクロ)を使って行を削除する
VBA(マクロ)を使って指定した行を削除する方法については、下記を参照してください。
行を削除するためのVBA
行(例:3行目)を削除するためのVBAは以下のとおりです。
Sub deleterow03()
Rows(3).Delete
End Sub
後述の「VBAで行を削除する」セクションでは、実際にこのVBAコードを使って、シートの3行目を削除していきます。
VBAで行を削除する
VBA(マクロ)を使って行(例:3行目)を削除する方法については、以下のとおりです。
①開発タブ、②Visual Basicの順に選択します。
Microsoft Visual Basic for Applicationsダイアログボックスが表示されました。①挿入タブ、②標準モジュールの順に選択します。
①行を削除するVBAコードを入力します。②SUB/ユーザー フォームの実行を選択し、③×ボタンを押します。
指定した行(例:3行目)が削除されました。指定した行の削除はこのシートのみで、他のシートには影響していません。
VBA(マクロ)を使って空白行を削除する
このセクションでは、マクロ(VBA)を使って空白行を一括で削除する方法について説明します。
セルA1~C8には、空白行が挿入されたデータがあります。ここでは、この空白行を削除するVBAを作成し、起動を行います。
①開発タブ、②Visual Basicの順に選択します。
「Microsoft Visual Basic for Applications」ダイアログボックスが表示されました。
①挿入タブ、②標準モジュールの順に選択します。
①表示された標準モジュールに、以下のコードを入力します。
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/ユーザー フォームの実行を選択し、③×ボタンを押します。
表から空白行のみが削除されました。