Home » ワードマクロ・Word VBAの使い方 » Selection » Word VBAのFind.Executeで見つからない場合

Word VBAのFind.Executeで見つからない場合

動作検証バージョン:Windows 11 Home + 64bit Word バージョン 2402(ビルド17328.20000クイック実行)ベータチャネル

「word vba find 見つからない場合」
「WORD Find 見つからなかった場合の処理」
といった検索で、このサイト『インストラクターのネタ帳』へのアクセスが時折あります。

Word VBAのFindオブジェクトを使って検索を行い、見つからなかった場合の処理をどう書けばいいのか調べていた方による検索です。

Findで見つからない場合の処理を入れたサンプルマクロ

Wordを起動して、新規に作成したWord文書に何らかの文字列を入力して、以下のWordマクロを実行してください。

Sub Findで見つからない場合の処理()
 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で見つからない場合

「Selection」の記事一覧

検索


Copyright © インストラクターのネタ帳 All Rights Reserved.

.