条件に一致する行を取得する方法

2025年06月26日

条件に一致する行を取得する方法の説明画像です

※本記事で掲載しているサンプルデータは全てダミーデータとなっており、実際に使用されているデータではありません。

条件に一致した行を黄色で塗りつぶしを行う

下記のサンプルコードはB列のカテゴリが『カテゴリA』の行のみを黄色で塗りつぶしを行っています。
2行目から最終行までループし、IF文で条件分岐を行います。


Sub カテゴリA塗りつぶし()

Dim i As Long, LastRow As Long

'A列で最終行を取得する
LastRow = Cells(Rows.Count, "A").End(xlUp).Row

'2行目から最終行までループ
For i = 2 To LastRow
    
    'カテゴリAの場合黄色で塗りつぶし
    If Cells(i, "B").Value = "カテゴリA" Then
        'A列からF列を黄色で塗りつぶす
        Range(Cells(i, "A"), Cells(i, "F")).Interior.Color = RGB(255, 255, 0)
    End If
    
Next i

MsgBox "塗りつぶしが完了しました", vbInformation, "塗りつぶし完了"

End Sub
    

実行結果

カテゴリAのみ塗りつぶしが行えました。

カテゴリAを塗りつぶすマクロを実行させた結果の画像です

ワイルドカードで条件をあいまいに設定する

ワイルドカードを使用して、ステータスの『アクティブ』という文字が含まれている箇所のみを黄色で塗りつぶしを行います。 ワイルドカードの説明に関しては、こちらの記事を参考にしてください。


Sub ワイルドカードで条件をあいまいに設定()

Dim i As Long, LastRow As Long

'A列で最終行を取得する
LastRow = Cells(Rows.Count, "A").End(xlUp).Row

'2行目から最終行までループ
For i = 2 To LastRow
    
    'ステータスに「アクティブ」という文字が含まれていた場合、黄色で塗りつぶします
    If Cells(i, "C").Value Like "*アクティブ*" Then
        'A列からF列を黄色で塗りつぶす
        Range(Cells(i, "A"), Cells(i, "F")).Interior.Color = RGB(255, 255, 0)
    End If
    
Next i

MsgBox "塗りつぶしが完了しました", vbInformation, "塗りつぶし完了"

End Sub
    

実行結果

ステータスに『アクティブ』という文字が含まれている行のみが塗りつぶされました。

あいまい検索を行って塗りつぶしを終えた画像です

複数の条件が一致した行を黄色で塗りつぶす

カテゴリが『カテゴリA』かつステータスが『非アクティブ』となっている行を黄色で塗りつぶしを行います。 複数条件を指定する際はIF文に『And』もしくは『Or』を使用します。

例)Aが1の時かつBが2の時とする場合のIF文
  > If A = 1 And B = 2 Then
例)Aが1の時またはBが2の時とする場合のIF文
  > If A = 1 Or B = 2 Then

下記のサンプルコードではAndを使用した例です。


Sub 複数条件一致()

Dim i As Long, LastRow As Long

'A列で最終行を取得する
LastRow = Cells(Rows.Count, "A").End(xlUp).Row

'2行目から最終行までループ
For i = 2 To LastRow
    
    'B列のカテゴリが「カテゴリA」の場合かつ、C列のステータスが「非アクティブ」の場合、黄色で塗りつぶしを行う
    If Cells(i, "B").Value = "カテゴリA" And Cells(i, "C").Value = "非アクティブ" Then
        'A列からF列を黄色で塗りつぶす
        Range(Cells(i, "A"), Cells(i, "F")).Interior.Color = RGB(255, 255, 0)
    End If
    
Next i

MsgBox "塗りつぶしが完了しました", vbInformation, "塗りつぶし完了"

End Sub
    

実行結果

カテゴリが「カテゴリA」かつステータスが「非アクティブ」の箇所のみ、黄色で塗りつぶしが行われました。

複数条件一致させた結果の画像です

関連記事

条件に一致する行を取得する方法
『型が一致しません』と突然エラーが発生してしまった場合の対処法
シートをコピーして新規ブックを作成