「word vba find 見つからない場合」
「WORD Find 見つからなかった場合の処理」
といった検索で、このサイト『インストラクターのネタ帳』へのアクセスが時折あります。
Word VBAのFindオブジェクトを使って検索を行い、見つからなかった場合の処理をどう書けばいいのか調べていた方による検索です。
Findで見つからない場合の処理を入れたサンプルマクロ
Wordを起動して、新規に作成したWord文書に何らかの文字列を入力して、以下のWordマクロを実行してください。
ActiveDocument.Range(0, 0).Select
With Selection.Find
.Text = "検索"
If .Execute Then
Stop
Else
MsgBox "見つかりませんでした"
End If
End With
End Sub
アクティブ文書に「検索」という文字列が見つかった場合、その文字列「検索」が選択された状態で、Stopステートメントで中断し、見つからなかった場合には「見つかりませんでした」とメッセージボックスに表示されます。
Find.Executeの戻り値はBoolean
Find.Executeメソッドを実行すると検索が行われ、見つかった場合にはTrue、見つからなければFalseが返されます。
そこで上記のサンプルマクロでは、
With Selection.Find
.Text = "検索"
If .Execute Then
Stop
Else
MsgBox "見つかりませんでした"
End If
If文の条件にFind.Executeメソッドの戻り値を指定しています。
ActiveDocument.Range(0, 0)
上記コードの前の
ActiveDocument.Range(0, 0).Select
は、拙著『Excel VBAユーザーのためのWord VBA入門(1): Document・Range・Selectionの基本編』の「3-2. Document.RangeメソッドでRangeを取得する」でも解説している、Word文書の先頭を表すWord.Rangeオブジェクトを取得してSelectしているコードです。
最終更新日時:2024-02-07 13:51
Home » ワードマクロ・Word VBAの使い方 » Selection » Word VBAのFind.Executeで見つからない場合