エクセルマクロで、オートフィルタで複数色を絞るVBAコードをご紹介します。
このページのマクロコードは、コピペで使えます。
ぜひお試しください!
オートフィルタで複数色を絞る
以下のマクロを実行すると、配列を使用して複数の色をフィルターで絞り込みします。
Sub オートフィルタで複数の色を抽出()
Dim LastRow As Long
Dim i As Long
Dim j As Long
Dim Target As String
Dim myAry As Variant
Dim Target_Char As String
'最終行取得
LastRow = Cells(Rows.Count, 1).End(xlUp).Row
j = 1
'配列宣言
myAry = Array()
'最終行から先頭へループ
For i = 1 To LastRow
'★A列の色を取得
Target = Cells(i, 1).Interior.Color
'★A列の文字列を取得
Target_Char = Cells(i, 1).Value
'取得したセル色が、黄色or緑だったら
If Target = 65535 Or Target = 5287936 Then
'配列の要素数を宣言
ReDim Preserve myAry(j)
'該当セルの文字列を配列格納
myAry(j) = Target_Char
j = j + 1
End If
Next
'★オートフィルタでA列から該当データを抽出
Range("A1").AutoFilter field:=1, Criteria1:=myAry, Operator:=xlFilterValues
End Sub
マクロ実行後
A列の背景色を判定し、「黄色」と「緑」のデータを
フィルターで抽出します。
重複データがない列の背景色を判定に使用します。
今回の場合、重複データが存在しない [A列] の色と文字列を判定に使用しています。
フィルタの [field:=1] で、A列から該当データを抽出しています。
(以下は該当のVBAコードを抜粋)
'★A列の色を取得
Target = Cells(i, 1).Interior.Color
'★A列の文字列を取得
Target_Char = Cells(i, 1).Value
'★オートフィルタでA列から該当データを抽出
Range("A1").AutoFilter field:=1, Criteria1:=myAry, Operator:=xlFilterValues
仮に、重複データがある [C列] で判定すると、
色なしのデータも抽出されてしまいます。
この記事がお役に立ちますと幸いです。
・【エクセルマクロ】オートフィルタ処理を自動化する使用例まとめ
【エクセルマクロ】オートフィルタ処理を自動化:超便利28選
...
「Excel自動化[最強]時短仕事術」
自動化の基礎と時短に役立つテクニック解説書
毎日の定型業務を手際良く行え、大幅な業務効率化を実現!
リンク