shikumika’s diary

日々の事務作業で手間なことを簡単にできる仕組み(自動化、方法など)、困ったことの解決方法を調べた備忘録

Wordで、ワイルドカードを使用した検索ができない事象の調査と対応

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では

qiita.com

を参考に、ActiveDocument.ContentをRangeオブジェクトで処理する方法も良さそう。

 

以上、Wordで、検索条件はあっているにも関わらず検索できない時は、カーソル位置のチェックはした方が良さそうという備忘録でした。