サイト内検索

基本 行・レコード操作

VBAコードで特定の範囲を含むレコードを削除する

対象レコードの項目の値が、ある特定の範囲にある場合に行削除(レコード削除)をするサンプルコードです。最終的な集計をする前に、対象外の値を持つレコードをあらかじめ削除するような場合に利用します。

ではサンプルファイルを用意した後に、つぎのVBAコードを真似て書いてみてくださいね。

 

今回のVBAコードは、サンプルシートにあるレコードのうち、「原価」が100円以上で200円未満のレコードを削除するものです。

では、さっそくVBAを実行してみましょう。下のように原価が100円以上200円未満のデータが削除されたでしょうか。

行削除実行前後のExcelワークシート比較
VBAコード実行前後

では、引き続き今回のVBAコードについてお話ししますね。

15~20行目:If Cells(r, 4) >= 100 And Cells(r, 4) < 200 Then ~ Next
「Cells(r, 4)」は、各レコードの4列目、すなわち「原価」の値になりますよね。次の、「>=」は「比較演算子」と言います。

VBAコードで使う主なものは以下のとおりです。

  • 「>」:左辺より右辺が小さい
  • 「<」:左辺より右辺が大きい
  • 「=」:左辺と右辺が等しい
  • 「>=」:左辺は右辺と等しいか、右辺より大きい
  • 「<=」:左辺は右辺と等しいか、右辺より小さい

よって、「Cells(r, 4) >= 100」は、「あるレコードの原価が100円か、100円より大きい」すなわち「原価が100円以上のレコード」となります。

つぎの「And」のお話しの前に、「And」の後ろ「Cells(r, 4) < 200」は、「あるレコードの原価が200円より小さい」、すなわち「原価が200円未満のレコード」となります。

では、お話しが後回しになりました「And」についてです。これは、「論理演算子」と言いますが、VBAコードでは主に以下のものを使います。

  • And:Andを挟んだ2つの条件の両方を同時に満たす
  • Or:Orを挟んだ2つの条件のうち、どちらか一方を満たす

以上を踏まえ、今回のIf文の条件式について整理してみました。

比較演算子についてやさしく説明
If文の条件式

このIf文の条件「原価が100円以上200円未満」が満たされた場合のみ、Then以降にある18行目のVBAコード「Cells(r, 1).EntireRow.Delete」が実行され、レコードが削除されます。

まとめ

今回は、ある範囲にある値を持つレコードを削除するVBAコードについてお話ししました。そして、その範囲を指定するために用いた「比較演算子」と「論理演算子」の使い方についても触れました。

比較演算子や論理演算子は、レコードの抽出に際して、VBAコード上で頻繁に使われます。ですので、今後のサンプルコードの紹介の中で登場した際には、また詳しくお話ししようと思います。

[スポンサーリンク]



サイト内検索

-基本, 行・レコード操作
-

Copyright© 集計用VBAサンプルコードをやさしく学ぼう , 2020 All Rights Reserved.