
No.3ベストアンサー
- 回答日時:
こんにちは!
オートフィルタのOR条件は二つしか設定できませんね。
ただ、一致条件であれば三つ以上でもオートフィルタで可能だと思いますが、
今回は除外条件が三つだというコトなので、オートフィルタ以外の方法になります。
一例です。
Sub 絞り込み()
Dim i As Long
Dim k As Long
Dim myR As Range
Dim myR1 As Range
Dim myR2 As Range
Dim myAry
myAry = Array(111, 211, 333) '//←除外データを追加可能//
Range("A:K").Interior.ColorIndex = xlNone
For i = 2 To Cells(Rows.Count, "D").End(xlUp).Row
For k = 0 To UBound(myAry)
If Cells(i, "D") = myAry(k) Then
If myR Is Nothing Then
Set myR = Cells(i, "D")
Else
Set myR = Union(myR, Cells(i, "D"))
End If
Exit For
Else
If Cells(i, "D") = 444 Then
If myR1 Is Nothing Then
Set myR1 = Cells(i, "A").Resize(, 11)
Else
Set myR1 = Union(myR1, Cells(i, "A").Resize(, 11))
End If
ElseIf Cells(i, "D") = 222 Then
If myR2 Is Nothing Then
Set myR2 = Cells(i, "A").Resize(, 11)
Else
Set myR2 = Union(myR2, Cells(i, "A").Resize(, 11))
End If
End If
End If
Next k
Next i
If Not myR Is Nothing Then
myR.EntireRow.Hidden = True
End If
If Not myR1 Is Nothing Then
myR1.Interior.ColorIndex = 28 '//←色は好みで//
End If
If Not myR2 Is Nothing Then
myR2.Interior.ColorIndex = 35 '//こちらの色も好みで//
End If
End Sub
※ 条件付き書式が設定してある場合、そちらが優先され色の変化はありません。
条件付き書式の設定はクリアしてマクロを実行してみてください。
※ 余計なお世話かもしれませんが、再表示の操作も必要だと思いますので
そのコードも記載しておきます。
Sub 再表示()
ActiveSheet.Rows.Hidden = False
End Sub
こんな感じではどうでしょうか?m(_ _)m
No.2
- 回答日時:
参考になりそうなコードを書いてみました(参考なので、雑ですが・・・)。
こんな感じです。
Sub sample()
With Range("A1").CurrentRegion
.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Worksheets("Sheet2").Range("A1:A2"), Unique:=False
.Rows("2:" & .Rows.Count).Interior.Color = Worksheets("Sheet2").Range("A2").Interior.Color
.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Worksheets("Sheet2").Range("B1:B2"), Unique:=False
.Rows("2:" & .Rows.Count).Interior.Color = Worksheets("Sheet2").Range("B2").Interior.Color
.AdvancedFilter Action:=xlFilterInPlace, CriteriaRange:= _
Worksheets("Sheet2").Range("C1:E2"), Unique:=False
End With
End Sub
AdvancedFilterメソッドで、444を抽出して色付け。222を抽出して色付け。最後に111、211、333以外をフィルター掛けています。
AdvancedFilterメソッドで抽出条件を指定するために、Sheet2に添付画像のような設定が必要です。

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) エクセルVBAで『A列』に新規で数値を入力し『B列』から右方向の空白セルにその値を貼り付ける方法 4 2022/11/05 08:37
- Excel(エクセル) エクセルのマクロを2つご指南ください 3 2023/01/02 12:16
- Windows 7 エクセルで重複データから抽出したい 2 2022/05/18 23:31
- Excel(エクセル) R列の1111/11/11以外、且つQ列の×の条件で該当行のAからAE列までオレンジに塗りつぶす 2 2022/07/02 10:18
- Visual Basic(VBA) VBAで大量データの処理 3 2022/11/15 21:53
- Excel(エクセル) 【マクロ】マクロが保存されているエクセルとは、別のエクセルブックの全シートの非表示列を再表示したい 1 2022/12/24 20:48
- Visual Basic(VBA) 2つのシートの任意のセルの番号が一致したら、一致した行をコピーする VBA 2 2023/06/19 20:48
- Excel(エクセル) VBA セルの値と同じ名前のシートにデータを貼り付けするやり方を教えてください 2 2022/05/17 16:26
- Excel(エクセル) エクセルで2つの表を比較して、文字列が同じだが、その行のある値が違うものを抽出したい 1 2022/10/06 21:48
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2023/08/03 11:27
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでオートフィルタのボ...
-
エクセルのオートフィルタで最...
-
オートフィルタ抽出データのみ
-
エクセルで時刻(8:00~20:00)...
-
Excelのオートフィルタで非表示...
-
エクセルで、条件に一致した行...
-
エクセルのセル内にある文字列...
-
エクセル オートフィルタ中の...
-
エクセル・条件付で行を削除す...
-
(VBA)フィルタがかかって...
-
エクセルのオートフィルタで抽...
-
オートフィルタで3つ以上の条...
-
上から順にすべてのデータを抽...
-
オートフィルタを見出し行選択...
-
【大至急】エクセルで、検索語...
-
エクセル関数で、数字の入った...
-
エクセルで指定期間内に在職す...
-
access マクロでのフィルタの...
-
エクセルのマクロを教えてくだ...
-
データの抽出を教えてください
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでオートフィルタのボ...
-
エクセルのオートフィルタで最...
-
エクセルで時刻(8:00~20:00)...
-
Excelのオートフィルタで非表示...
-
エクセルの偶数行(奇数行)の抽出
-
エクセル関数で、数字の入った...
-
エクセルにて、フィルタをかけ...
-
オートフィルタで3つ以上の条...
-
access マクロでのフィルタの...
-
オートフィルタは金額の桁カン...
-
エクセルで、条件に一致した行...
-
【EXCEL】条件に一致した最新デ...
-
【Excel/関数/条件付き書式】月...
-
オートフィルタで選択したデー...
-
Excelのフィルターで抽出した状...
-
Excel共有ブックのオートフィル...
-
データの抽出を教えてください
-
エクセルで隔週をもとめる
-
エクセル・条件付で行を削除す...
-
ACCESSでスペースの抽出
おすすめ情報