VBAで複数の「検索」をプログラミングする
VBA では、ループや . FindNext メソッドを組み合わせて、複数の検索を実行できます。次に例を示します。
Sub MultipleFindNext()
Dim rng As Range
Dim firstAddress As String
Dim searchValue As String
searchValue = "apple"
' 设置查找范围
Set rng = Range("A1:A10")
' 查找第一个匹配项
With rng
Set cell = .Find(What:=searchValue, LookIn:=xlValues, LookAt:=xlWhole)
' 如果找到了匹配项
If Not cell Is Nothing Then
firstAddress = cell.Address
Do
' 处理找到的每个匹配项
' 例如:在找到的单元格上应用格式或执行其他操作
cell.Font.Bold = True
' 继续查找下一个匹配项
Set cell = .FindNext(cell)
' 如果找到了第一个匹配项,则退出循环
If cell.Address = firstAddress Then Exit Do
Loop While Not cell Is Nothing
End If
End With
End Sub
まず、見つける範囲rngと見つける値searchValueを設定します。そして、最初の.Findメソッドで最初のマッチを見つけ、ループで各マッチを処理します。ループ内では、.FindNextメソッドで次に見つかったマッチを継続的に探します。ループは、最初のマッチを再度見つけるまでずっと実行されます。各マッチを処理するときは、書式を適用するなど、カスタマイズされた操作を行うことができます。