Find関数のエラーを回避するには?

Question 59.4 Previous Next
Findプロパティ取得エラー EXCEL VBAでワークシート関数FINDを使いたいのですが、検索対象文字が含まれていない場合、「FINDプロパティを取得できません」となり、うまくいきません。
どうすれば良いのでしょうか?教えてください。
Answer   Copyright (C) 2003.3.19 永井善王
どんなデータに対して検索されているのかが不明ですが、Find関数は大文字、小文字を区別して検索してくれますから、その分、エラーが出やすいですね。
見つからないエラー 解決方法としては、エラー処理のコードを入れておく方法があります。 例えば下記のマクロで、A1セルに "ABD"という値が入力されている状態で、"C"を検索すると、右図のメッセージが表示されます。
Sub Find関数のエラーを回避する()
    On Error GoTo エラー処理
        検索する文字列 = "C"
        検索される対象 = Cells(1, 1)
        位置 = Application.WorksheetFunction.Find(検索する文字列, 検索される対象, 1)
        MsgBox 位置 & " 番目にあります", , "すぐに役立つエクセルVBAマクロ集"
    On Error GoTo 0
    Exit Sub

エラー処理:
    MsgBox 検索する文字列 & " は見つかりません", , "すぐに役立つエクセルVBAマクロ集"
    On Error GoTo 0
End Sub
参考にしてください。

 

Excel VBA Macro