EXCEL VBA 複数の条件を満たす行を削除・空白削除・あいまい条件・0削除(行削除・列削除:Deleteメゾット)

 

 

EXCEL VBA 複数の条件を満たす行を削除・空白削除・あいまい条件・0削除:(行削除・列削除:Deleteメゾット)テクニック

 

 

 ●はじめに

今回説明するのは、Deleteメゾットの説明をいたします。EXCELに大量のデータが登録されている時に、データを整理する際に無駄なデータを手動で削除する事があると思いますが、手動だと数千件・数万件と言ったデータだとデータを整理するのが、大変だと思います。ここでEXCELの行単位・列単位で削除する機能が、Deleteメゾットになります。不必要なデータを削除する際に、条件設定をすることで、大量のデータも一気に削除する事もできます。それでは、サンプルプログラムを交えて順番に説明をいたします。

 

 

●【EXCEL VBA セルの挿入・行の挿入・列の挿入・セルの削除・行の削除・列の削除( Insert / Delete )については、下記を参照して下さい】

EXCEL VBA セルの挿入・行の挿入・列の挿入・セルの削除・行の削除・列の削除( Insert / Delete )

●【Application.Rows プロパティ (Excel)についは、下記を参照して下さい。Microsoft様】
https://docs.microsoft.com/ja-jp/office/vba/api/excel.application.rows

 

 

EXCEL VBA セルの削除・行の削除・列の削除( Deleteメゾット)

 

 ●書式の説明   (Delete:  セルの削除・行の削除・列の削除)

●Deleteメゾットを利用するには、下記の通りに設定を行います。

 

【行削除の例】
・ Rows(1).Delete
※1行目を削除

・ Range(”1:3”).Delete
※1~3行目を削除

・ Range(“C3”).EntireRow.Delete
※セル「C3」の行(3行目)を削除

 

【列削除の例】

・ Columns(1).Delete
※A列目(1列名)を削除

・ Columns(“A”).Delete
※A列目を削除
※1~3行目を削除

・ Range(“C3”).EntireRow.Delete
※セル「C3」の行(3行目)を削除

 

 

 

 

 

EXCEL VBA 条件を満たすを削除・空白削除:Deleteメゾット①

 

 

 ●プログラム説明 (サンプル①)

下記のサンプルプログラムは、データ内に空白のセルが有る場合に、その行を削除するサンプルプログラムです。

 

【削除条件】
・空白セルに該当する行を削除します。

【プログラムの流れ】

① 表のA列の最終行を取得します。
② A列の最終行から2行目まで繰り返します。
③ 表の最終行から順番にA列のセルが空白か確認します。
④ A列のセルに空白が有れば、その行を削除します。
⑤ 2行目まで繰り返します。②へ

【プログラム実行条件】
・A列にデータを登録します。

 

 

 

 

 

●実行前~実行後 ※プログラム実行後、A列の空白セルに該当する行が削除されました。
(画面クリックして拡大)

 

 

EXCEL VBA 条件を満たすを削除:Deleteメゾット②

 

 

 ●プログラム説明 (サンプル②)

下記のサンプルプログラムは、データ内(見出し)に指定し文字列【性別】が登録されている列を順番に探して見つかった場合に、その列を削除するサンプルプログラムです。


【削除条件】

・見出しに指定した文字列(性別)に該当する列を削除します。

【プログラムの流れ】

① 表の1行目の最終列を取得します。
② 1行目の最終行から1列目まで繰り返します。
③ 表の最終列から順番に1行目のセルに”性別”か確認します。
④ 1行目のセルに”性別”が有れば、その列を削除します。
⑤ 1列目まで繰り返します。2へ

【プログラム実行条件】
・1行目の列に「性別」の文字を登録します。

 

 

 

 

 ●実行前~実行後 ※プログラム実行後、1行目の列に性別の文字列が登録されている列(C列)が削除されました。
(画面クリックして拡大)

 

 

EXCEL VBA 条件を満たす行を削除・0(ゼロ)削除:Deleteメゾット③

 

 

 ●プログラム説明 (サンプル③)

下記のサンプルプログラムは、数値の”0”が登録されている行を削除します。文字列の”0”と計算結果でも”0”とみなし該当の行を削除します。

【削除条件】
・指定した列に”0”が登録されている行を削除します。

【プログラムの流れ】

① 表の1行目の最終行を取得します。
② 最終行から2行目まで繰り返します。
③ 表の最終行から順番に2行目までのセルに”0”が有るか確認します。
④ 該当するセルに”0”が有れば、その行を削除します。
⑤ 2行目まで繰り返します。②へ

【プログラム実行条件】
・E列に0データを登録する。

 

 

 

 ●実行前~実行後 ※プログラム実行後、E列の合計が0円の行が削除されました。
(画面クリックして拡大)

 

 

EXCEL VBA 複数条件を満たす行を削除:Deleteメゾット④

 

 

 ●プログラム説明 (サンプル④)

下記のサンプルプログラムは、複数条件に一致する行を削除します。

 

【削除条件】
・東京支店又は神奈川支店と合計金額が0円のデータを削除します。

【プログラムの流れ】

① 表の1行目の最終列を取得します。
② 最終行から2行目まで繰り返します。
③ 表の最終行から順番にセルデータに【東京支店又は神奈川支店か合計金額が0円のデータ】か確認します。
④ 削除条件に一致する行を削除します。
⑤ 2行目まで繰り返します。②へ

 

 

 

 

 ●実行前~実行後 ※プログラム実行後、A列の「東京支店」又は、「神奈川支店」と合計金額が0円のデータが削除されました。
(画面クリックして拡大)

 

 

EXCEL VBA あいまい条件を満たす行を削除:Deleteメゾット⑤

 

 

 ●プログラム説明 (サンプル⑤)

下記のサンプルプログラムは、【備考」のD列に【削除】または、【DEL】の文字列が含まれている場合は、その行を削除します。

【削除条件】
・D列の【備考】に【削除】または、【DEL】の文字列が含まれている場合、その行を削除します。

【プログラムの流れ】

① 表のA列の最終列を取得します。
② A列の最終行から2行目まで繰り返します。
③ D列の最終行から順番に2行目までに、【備考】に「削除」又は、「DEL」の文字列が含まれるか確認します。
④ D列「備考」に該当する「削除」・「DEL」が含まれている場合は、その行を削除します。
⑤ 2行目まで繰り返します。②へ

【プログラム実行条件】
・D列の【備考】列に「削除」・「DEL」の文字が含まれる文字列を登録します。

 

 

 ●実行前~実行後 ※プログラム実行後、D列「備考」に削除・DELの文字列が含まれている行が削除されました。
(画面クリックして拡大)

 

 

 

EXCEL VBA 特定期間を満たす行を削除:Deleteメゾット⑥

 

 

 ●プログラム説明 (サンプル⑥)

下記のサンプルプログラムは、特定期間(2021年6月11日から2021年9月11日)までの日付が登録されている行を削除します。

【削除条件】
・A列の【日付】に特定期間(2021年6月11日から2021年9月11日)が登録されている。その行を削除します。

【プログラムの流れ】

① 表のA列の最終列を取得します。
② A列の最終行から2行目まで繰り返します。
③ A列の最終行から順番に2行目までに、【日付】を確認して特定期間に含まれるか確認します。
④ A列「日付」が設定した特定期間に含まれている場合は、その行を削除します。
⑤ 2行目まで繰り返します。②へ

【プログラム実行条件】
・A列の【日付】列に日付を登録します。

 

 

 ●実行前~実行後 ※プログラム実行後、特定期間として指定した期間(2021年6月11日から2021年9月11日)に該当する行が削除されました。
(画面クリックして拡大)

 

 

 

EXCEL VBA 削除対象を表示してから削除:Deleteメゾット⑦

 

 

 ●プログラム説明 (サンプル⑦)

下記のサンプルプログラムは、プログラム実行後、削除対象の行番号と該当者をメッセージボックスに確認表示してから該当の行(データ)を削除するサンプルプログラムです。削除実行前に、確認する事で誤って削除する事も軽減する事も出来ます。

 

【削除条件】

・F列の「退職」に”●”の印のある行が削除対象になります。
 ※今回のプログラムについては、該当する行を削除する前に、メッセージボックスに削除対象を表示してから削除を行います。

【プログラムの流れ】

① 表のA列の最終行を取得します。
② A列の最終行から2行目まで繰り返します。
③ 配列に削除対象を登録する件数分(A列の最終行分を用意)
④ 登録する配列番号の初期設定0~
⑤ 削除対象の行番号と氏名を文字列変数(Del)へ追記登録します。
⑥ 配列に削除対象の行番号を登録します。
⑦ 最終行から2行目まで繰り返します。②へ
⑧ 削除対象が抽出されたので、メッセージボックスに削除対象を表示します。
⑨ メッセージボックスの判定で「OK」で削除を実行します。
⑩ 配列に登録れている削除対象の行を読み込み対象行を削除します。
⑪ 配列に登録されている行データ全てを削除します。⑩へ

【プログラム実行条件】
・F列の【退職】列に削除対象として”●”を登録します。

 

 

 ●実行前~実行後 ※プログラム実行後、削除対象のリストをメッセージボックスへ表示させて、OKボタンををクリックして、削除対象の行を削除します。
(画面クリックして拡大)

 

 

 

最後まで、ご覧いただきまして誠に有難うございました。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。