VBAで行を削除する方法(14の方法)

  • これを共有
Hugh West

を使用して行を削除する最も簡単な方法をお探しの場合は、次のようになります。 ブイビーエー ということであれば、正しい選択です。

では、本編に飛び込んでみましょう。

ワークブックダウンロード

VBA 行の削除.xlsm

VBAを使用して行を削除する14の方法

ここでは、3つのデータテーブルを使って、行の削除の方法を示しています。 ブイビーエー 最初のテーブルには、いくつかの 製品情報 会社の、そして彼らの サイズ , 価格 .

2枚目には、いくつかの 製品コード と、それに対応する 製品サイズ 価格

そして、最後の1枚には、いくつかの プロジェクト名 とそれぞれの 開始日 費用 .

記事の作成には Microsoft Excel 365 のバージョンがありますが、お客様のご都合に合わせてご利用ください。

方法-1:VBAを使用して1つの行を削除する

を含む行を削除したいとします。 製品 靴 1. で、この1行を削除するには、次の方法をとります。

Step-01 :

➤に移動します。 デベロッパー タブ>> ビジュアルベーシック オプション

その後 Visual Basic エディター が開きます。

➤に移動します。 インサート タブ>> モジュール オプション

その後 モジュール が作成されます。

ステップ02 :

➤ 次のコードを書いてください。

 Sub dltrow1() Worksheets("Single").Rows(7).EntireRow.DeleteエンドSub 

これです。 "シングル" はワークシート名であり 行数(7) は行番号を選択します。

.EntireRow.Delete は、7行目全体を削除します。

➤プレス F5

結果 :

を含む行を削除することになります。 製品 名前 靴1 .

続きを読む エクセルで行を削除する方法:7つのメソッド

方法2:VBAを使用して複数の行を削除する

を含む行のように、複数の行を削除したい場合。 製品 人名 靴1 , 靴2。 靴3 であれば、これに従うことができます。 ブイビーエー のコードで表示されます。

Step-01 :

➤フォロー Step-01 方法-1

 Sub dltrow2() Rows(13).EntireRow.Delete Rows(10).EntireRow.Delete Rows(7).EntireRow.Delete End Sub 

ここで、13、10、7行目が削除されますが、行番号を連続的に書くには、このコードのように最後の行番号から最初の行番号まで書かなければなりません。

そうしないと、7行目のような最初の行を削除した後、この行より下にある残りの行が1行上に移動し、10行目が9行目、13行目が12行目になってしまいます。 このため、正しい行を削除することができなくなります。

➤プレス F5

結果 :

を含む行を削除します。 製品 人名 靴1 , 靴2。 靴3 .

続きを読む エクセルで複数行を削除する方法(3つの方法)

方法-3: 選択して行を削除する

ここでは、その行のアクティブなセルを基準に行を削除する方法を紹介します。

Step-01 :

➤フォロー Step-01 方法-1

 Sub dltrow3() ActiveCell.EntireRow.Delete End Sub 

アクティブなセルを持つ行を削除します。

➤コードを保存する。

ステップ02 :

➤ 削除したい行のセルを選択します(ここではセル B7 )

➤に移動します。 デベロッパー タブ>> マクロ オプション

その後 マクロ ウィザードが起動します。

を選択します。 マクロ名 dltrow3 を押してください。 実行

結果 :

その後、その行が含まれる行を削除します。 製品 名前 シューズ1 .

方法-4: 選択範囲内のすべての行を削除する

選択範囲の行をすべて削除する場合は、次の方法で行います。

Step-01 :

➤フォロー Step-01 方法-1

 Sub dltrow4() Selection.EntireRow.Delete End Sub 

選択範囲の行をすべて削除します。

➤コードを保存する。

ステップ02 :

削除したい行の範囲を選択します。 B7:D9 )

➤に移動します。 デベロッパー タブ>> マクロ オプション

その後 マクロ ウィザードが起動します。

を選択します。 マクロ名 dltrow4 を押してください。 実行

結果 :

を含む行を削除します。 製品 人名 シューズ1 , Jacket1, ジャケット2 .

続きを読む Excelで選択した行を削除する方法(8つのアプローチ)

方法-5: セルに空白がある場合、行を削除する

ここでは、空のセルがあります。 B9 (このメソッドのためにこのセルの値を削除しています)、そして、このメソッドのために ブイビーエー のコードを持っている行を削除します。 B9 のセルがあります。

Step-01 :

➤フォロー Step-01 方法-1

 Sub dltrow5() Range("B5:D13").SpecialCells(xlCellTypeBlanks).EntireRow.Delete終了Sub 

範囲内のすべての行を削除します。 "B5:D13" 空白のセルがあること。

➤プレス F5

結果 :

すると、空白のセルを含む行を削除することができるようになります。

続きを読む エクセルで空白行を削除する方法(11の方法)

方法6:行全体が空の場合、行を削除する

ここでは、空のセルがあります。 B9 (このメソッドの値は削除しました)、12行目である空の行を使用し、(このメソッドの値は削除しました) ブイビーエー のコードと COUNTA機能 空の行を削除します。

Step-01 :

➤フォロー Step-01 方法-1

 Sub dltrow6() Dim cell As Range For Each cell In Range("B5:D13") If Application.WorksheetFunction.CountA(cell.EntireRow) = 0 Then cell.EntireRow.Delete End If Next cell End Sub 

"B5:D13" はデータ範囲であり FOR ループは、この範囲内のすべてのセルに対して機能します。

CountA(cell.EntireRow) は、空白でないセルの数を返し、それが0になったらその行は削除されます。

➤プレス F5

結果 :

その後、空の行を削除することができますが、この行のすべてのセルが空でない行は削除されません。

続きを読む VBAを使用してExcelの空白行を削除する方法

方法-7: n行目ごとに削除する。

この方法で、n行目ごと(この場合は3行目ごと)に削除することができます。

Step-01 :

➤フォロー Step-01 方法-1

 Sub dltrow7() rc = Range("B5:D13").Rows.Count For i = rc To 1 Step -3 Range("B5:D13").Rows(i).EntireRow.Delete次のi End Sub 

"B5:D13" はデータ範囲であり ランク は、この範囲の行数の合計を返します。 9 .

ここでは FOR ループは最後の行から開始されます。 ランク または 9 の場合、最初の行で終了します。

ステップ-3 を削除するのに役立ちます。 3位 の行がこの範囲にあります。

➤プレス F5

結果 :

を含む行を削除します。 製品 人名 シューズ1 , 靴2。 靴3 .

続きを読む エクセルでn行目ごとに削除する方法(最も簡単な6つの方法)

類似の読み物。

  • Excel VBAで選択した行を削除する方法(ステップバイステップガイドライン)
  • Excelの未使用の行を削除する(8つの簡単な方法)
  • エクセルで非表示の行を削除する方法(3つの方法)
  • エクセルで無限にある行を削除する(5つの簡単な方法)
  • Excelでいつまでも続く行を削除する方法(4つの簡単な方法)

方法-8: セルの値に基づいて行を削除する。

このメソッドでは、特定の値を持つ行を削除します。 シャツ2 .

Step-01 :

➤フォロー Step-01 方法-1

 Sub dltrow8() Dim cell As Range For Each cell In Range("B5:D13") If cell.Value = "Shirt 2" Then cell.EntireRow.Delete End If Next cell End Sub 

"B5:D13" はデータ範囲であり FOR ループは、この範囲内のすべてのセルに対して機能します。

行のいずれかのセルに値が含まれている場合 "シャツ2" の場合、その行は削除されます。

➤プレス F5

結果 :

を含む行を削除することになります。 製品 名前 シャツ2 .

続きを読む Excelでセルに値が含まれている場合に行を削除するVBAマクロ(2つの方法)

方法-9: 重複した行を削除する

ここでは、2つの行が 商品コード 97375 というわけで、下の赤枠で示した行を1つ削除したいと思います。

Step-01 :

➤フォロー Step-01 方法-1

 Sub dltrow9() Range("B5:D13").RemoveDuplicates Columns:=1 End Sub 

これです。 "B5:D13" はデータ範囲であり 列数:=1 は、開始カラムである1つのカラムにのみ重複する値を検索することを意味します。 B列 が、もし他の列も検索したい場合は、必要に応じてこの数字を使うことができます。

➤プレス F5

結果 :

その後、他の行と類似している行を削除することができます。

続きを読む VBAでExcelの重複行を削除する方法(8つの効果的な方法)

方法-10:テーブルの行を削除する

例えば、次のような名前のテーブルがあったとします。 表1 このテーブルの6行目を削除したい場合は、次の方法で行います。

Step-01 :

➤フォロー Step-01 方法-1

 Sub dltrow10() ActiveWorkbook.Worksheets("表").ListObjects("表1").ListRows(6).Delete End Sub 

これです。 "テーブル" はシート名です。 "テーブル1" はテーブル名であり 6 は、削除したいこのテーブルの行番号です。

➤プレス F5

結果 :

このようにして、このテーブルの目的の行を削除します。

続きを読む Excel VBAを使用して、1つの列に基づく重複した行を削除する方法

方法-11: フィルタリング後に可視行を削除する。

ここでは、データ・テーブルを 価格 以上の値の列 $1,500.00 で、フィルタリング後に表示されている行をすべて削除したいのですが。

Step-01 :

➤フォロー Step-01 方法-1

 Sub dltrow11() Range("B5:D13").SpecialCells(xlCellTypeVisible).EntireRow.Delete End Sub 

これです。 "B5:D13" はデータ範囲です。

➤プレス F5

これで、フィルタリング後の可視行はすべて削除されます。 これで、非表示にした行を復活させるには フィルター の記号が表示されます。 価格 の欄があります。

をクリックします。 すべて選択 オプション

➤プレス よっしゃー

結果 :

最後に、データテーブルに隠された行を取り戻します。

続きを読む ExcelのVBAで行のフィルタリングと削除を行う方法(2通り)

方法-12: 最後にアクティブになったセルに基づいて行を削除する。

ここで、私の最後のアクティブなセルは、セル B13 で、これを以下のデータテーブルの最後のアクティブなセルから削除したいのです。

Step-01 :

➤フォロー Step-01 方法-1

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

これです。 2 てだて B列 を、必要に応じて変更することができます。

➤プレス F5

結果 :

この方法で、最後にアクティブになった行を削除します。

続きを読む 複数のセルの値(3つの基準)をもとに行を削除するExcel VBAコード

方法-13: 任意の文字列を持つ行を削除する

任意の文字列を持つ行を削除する場合、次のような方法があります。

Step-01 :

➤フォロー Step-01 方法-1

 Sub dltrow13() Dim FirstRow As Long Dim LastRow As Long Dim FirstColumn As Long Dim LastColumn As Long Dim sheet As Worksheet Dim Rng As Range FirstRow = 5 FirstColumn = 2 Set sheet = Worksheets("String") With sheet With .Cells LastRow = .Find(What:="*", LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row LastColumn = .Find(What:="*", *:最初の行を含む。LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column End With Set Rng = .Range(.Cells(FirstRow, FirstColumn), .Cells(LastRow, LastColumn)) End With On Error Resume Next Rng.SpecialCells(xlCellTypeConstants, xlTextValues).EntireRow.Delete End Sub 

これです。 "文字列" はシート名、このデータ範囲の1行目の番号は 5 で、開始列番号は 2

があります。 ステートメントを使用すると、一連のステートメント全体に対して一度だけオブジェクトまたはユーザー定義型を指定することができます。

On Error Resume Next 文は、実行時エラーが発生した場合、エラーが発生した文の次の文に制御が移ることを指定します。

最終行 最後のカラム データ範囲の最後の行と列を返す。

SpecialCells(xlCellTypeConstants, xlTextValues) は、範囲内の任意のテキスト値を持つ行を選択します。

➤プレス F5

結果 :

その後、任意の文字列を持つ行を削除します。

続きを読む Excelで行を削除するショートカット(ボーナステクニック付き)

方法-14: 日付に基づく行の削除

ここでは、特別な日付を持つ行を削除します。 11/12/2021 (mm/dd/yyyy)を使ってこの方法で行います。 DATEVALUE関数 .

Step-01 :

➤フォロー Step-01 方法-1

 Sub dltrow14() Dim FirstRow As Long Dim LastRow As Long Dim CriteriaColumn As Long Dim myDate As Date Dim sheet As Worksheet Dim i As Long Dim myRowsWithDate As Range FirstRow = 5 CriteriaColumn = 3 myDate = DateValue("11/12/2021") Set sheet = Worksheets("Date") With sheet LastRow = .Cells.Find(What:="*", LookIn:=xlFormulas, LookAt:=xlPart, _ SearchOrder:=xlByRows.Date) Set sheet = Worksheets("Column")セット シート名:DateDate("11") Set Sheet=Day(Day) {SearchWord:=xlFormulas:*",{Day(Data){Look(Data)="*"Day(*")SearchDirection:=xlPrevious).Row For i = LastRow To FirstRow Step -1 With .Cells(i, CriteriaColumn) If .Value = myDate Then If Not myRowsWithDate Is Nothing Then Set myRowsWithDate = Union(myRowsWithDate, .Cells) Else Set myRowsWithDate = .Cells End If End With次のi End With If Not myRowsWithDate Is Nothing Then myRowsWithDate.EntireRow.Delete End Sub 

これです。 "日付" はシート名、このデータ範囲の1行目の番号は 5 で、基準列(どの列に日付があるか)の番号が 3 .

があります。 ステートメントを使用すると、一連のステートメント全体に対して一度だけオブジェクトまたはユーザー定義型を指定することができます。

On Error Resume Next 文は、実行時エラーが発生した場合、エラーが発生した文の次の文に制御が移ることを指定します。

最終行 はデータ範囲の最後の行を返し,ここでは FOR ループは最後の行から開始されます。 最終行 または 6 の場合、最初の行で終了します。

データバリュー は、テキストの日付を値に変換します。

これです。 ユニオン は,日付のあるセルに対応する複数の範囲の和を返す。 11/12/2021 そして、最終的には、その範囲を削除します。

➤プレス F5

結果 :

その後、ある日付を持つ行を削除する。 11/12/2021 .

関連コンテンツ 特定のデータを含む行を削除するExcel VBA(9例)

プラクティス部門

自分で練習できるように 実践編 という名前のシートに、以下のようなセクションを作成します。 実践編 .自分でやってください。

結論

今回は、最も簡単な使い方を取り上げてみました。 ブイビーエー 行の削除に効果的です。 ご参考になれば幸いです。 ご指摘やご質問があれば、コメント欄でお気軽にお寄せください。

Hugh West は、業界で 10 年以上の経験を持つ、非常に経験豊富な Excel トレーナー兼アナリストです。彼は会計と財務の学士号と経営管理の修士号を取得しています。ヒューは教えることに情熱を持っており、理解しやすい独自の教育アプローチを開発しました。彼の Excel に関する専門知識は、世界中の何千人もの学生や専門家がスキルを向上させ、キャリアで優れた成果を上げるのに役立ってきました。 Hugh はブログを通じて知識を世界に共有し、個人や企業が潜在能力を最大限に発揮できるよう無料の Excel チュートリアルとオンライン トレーニングを提供しています。