Wordで、ワイルドカードを使用した置換をしようとしたところ、検索条件はあっているにも関わらず「一致する項目はありません」が時折発生。
同じ検索条件で、何度か試していると、きちんと検索ができる時もあり動作が不安定。事象の調査と対応の備忘録。
具体的には、【Word】特定の単語を検索し、その単語間にある文章を削除する方法で、”Recorded?Steps*Steps^13”を検索していた時に発生。
結果、このケースで、チェックすべきはカーソルの位置と思われる。
どうやら、検索する文字列にワイルドカードを使用して「*(半角アスタリスク)」と「^13”(改行)」を検索する場面で、「*」に該当する文字列の間にカーソルがあると検索されない模様。
検索方向を「文書全体」にしていても検索されない。
なお、使用のWordは、Microsoft® Word for Microsoft 365 MSO。
カーソル位置を文書(ドキュメント)の先頭にすれば、安定して検索できるようになった。原因不明だが、その後は問題なし。
そのため、作成したWordのVBAで特定の単語を検索し、その単語間にある文章を削除では、処理の初期に
Selection.HomeKey Unit:=wdStory
を入れて、ドキュメントの先頭にした。
Selection.Find .Wrap = wdFindContinue
も一応残している。
なお、VBAでは
を参考に、ActiveDocument.ContentをRangeオブジェクトで処理する方法も良さそう。
以上、Wordで、検索条件はあっているにも関わらず検索できない時は、カーソル位置のチェックはした方が良さそうという備忘録でした。