◆検索3 確実な検索
規格名が以下のような製品があるとします。
ABS01234B
ABS01234A
ABS01234C
ABS01234
ABS01234AB
ABS01234A-1
ABS01234DD
ABS01234AC
ABS01234 で検索すると、本当は ABS01234 だけを検索したいのに、
検索される文字列の頭8文字しか見ていないので全部ヒットしてしまいます。
これの回避方法です。
色々あると思いますが、私が行っている方法を紹介します。
検索する文字数と検索される文字数が同じ文字数かチェックしています。
Sub test()
Dim FoundCell As Range
Dim firstAddress As String
Set FoundCell = Columns("B").Find(Range("D2"))
If Not FoundCell Is Nothing Then
If Len(FoundCell) = Len(Range("D2")) Then
FoundCell.Select
Else
firstAddress = FoundCell.Address
Do
Set FoundCell = Columns("B").FindNext(FoundCell)
If Len(FoundCell) = Len(Range("D2")) Then
FoundCell.Select
Exit Do
End If
Loop While Not FoundCell Is Nothing And _
FoundCell.Address <> firstAddress
End If
End If
End Sub
example22 をダウンロードして動作を確認してください。