エクセルマクロで、色付き行を非表示にするVBAコードをご紹介します。
このページのマクロコードは、コピペで使えます。
ぜひ、お試しください。
色付き行を非表示
以下のExcelVBAを実行すると、塗りつぶされている行を非表示にします。
Sub 色がついている行を一括非表示()
Dim i As Long
Dim j As Long
Dim LastRow As Long
'最終行を取得
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
Application.DisplayAlerts = False
'行を逆ループ
For i = LastRow To 1 Step -1
'A列が色付きだったら
If Cells(i, 1).Interior.ColorIndex <> xlNone Then
'行を非表示
Rows(i).Hidden = True
End If
Next i
Application.DisplayAlerts = True
End Sub
マクロ実行後
A列に色がついている場合、行を非表示にします。
色付き行を非表示(指定色)
以下のExcelVBAを実行すると、特定色だったら行を非表示にします。
Sub 色がついている行を一括非表示()
Dim i As Long
Dim j As Long
Dim LastRow As Long
'最終行を取得
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
Application.DisplayAlerts = False
'行を逆ループ
For i = LastRow To 1 Step -1
'A列が黄色だったら
If Cells(i, 1).Interior.Color = 65535 Then
'行を非表示
Rows(i).Hidden = True
End If
Next i
Application.DisplayAlerts = True
End Sub
マクロ実行後
A列が黄色の場合、行を非表示にします。
色付き行を非表示(複数セル判定)
以下のExcelVBAを実行すると、着色されている行を一括で非表示にします。
Sub 色付きの行をまとめてに非表示()
Dim i As Long
Dim j As Long
Dim LastRow As Long
Dim LastClm As Long
'最終列を取得
LastClm = Range("A1").End(xlToRight).Column
'最終行を取得
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
'行を逆ループ
For i = LastRow To 1 Step -1
'列をループ
For j = 2 To LastClm
'色付きだったら
If Cells(i, j).Interior.ColorIndex <> xlNone Then
'最終列まで色付きだったら
If j = LastClm Then
'行を非表示
Rows(i).Hidden = True
End If
Else
'色なしがあったら、次の行へ
Exit For
End If
Next j
Next i
End Sub
マクロ実行後
B列~F列がすべて色付きの場合、その行を非表示にします。
この記事がお役に立ちますと幸いです。
・【エクセルマクロ】色付けを自動化する使用例まとめ
【エクセルマクロ】色付け処理を自動化する:超便利32選
...
「たった1秒で仕事が片づくExcel自動化の教科書【増強完全版】」
「5時間かかる作業が3時間でできます」ではなく「1秒で終わらせます」へ
毎日の業務を瞬時に終わらせるしくみを解説
リンク