Excel のワイルドカード テキストで SearchFormat を使用して検索するにはどうすればよいですか?

Excel のワイルドカード テキストで SearchFormat を使用して検索するにはどうすればよいですか?

たとえば、シートに 100(行) x 20(列) のセルがあり、各セルに 5 本の線があります。一部の線は赤で、一部の線は取り消し線でマークされています。赤のすべての線を検索するにはどうすればよいでしょうか。取り消し線のあるすべての線を検索するにはどうすればよいでしょうか。 のみで検索するにはどうすればよいでしょうかSearchFormat

Excel を試してみましたが、セルの一部では機能しません。5本の線がすべて赤であれfind with formatば、見つけることができますが、2本の線だけが赤で、他の3本の線が正常である場合、2本の線を見つけることができません。match entire cell contentsないチェックしました。

答え1

これに対する解決策が必要になりますVBA:

始めるためのサンプル マクロは、アクティブ シート (アクティブ セルの 1 つ右のセルから開始) でテキスト定数を含むセルを検索し、次にセル内のテキストを 1 文字ずつ検索して Red を検索します。赤いテキストを含む最初のセルが見つかったら停止し、そのセルを選択します。

Sub FindColorInCells()
    Dim n As Long
    Dim i As Long, j As Long
    Dim cl As Range
    Dim r As Range

    Set r = ActiveSheet.UsedRange
    i = ActiveCell.Row - r.Row + 1
    If i > r.Rows.Count Or i < 0 Then i = 1
    j = ActiveCell.Column - r.Column + 1
    If j > r.Columns.Count Or j < 0 Then j = 1
    i = (r.Columns.Count * (i - 1) + j) Mod r.Cells.Count + 1
    j = r.Cells.Count
    Do While i <> j
        With r(i)
            If Not .HasFormula Then
                If Len(.Value) > 0 Then
                    If TypeName(.Value) = "String" Then
                        For n = 1 To .Characters.Count
                            If .Characters(n, 1).Font.ColorIndex = 3 Then
                                ' found red
                                .Select
                                Exit Sub
                            End If
                        Next
                    End If
                End If
            End If
        End With
        i = i Mod j + 1
    Loop
End Sub

関連情報