パソコン悪戦苦闘記録

Wordマクロで検索Findを使った文書処理

 Excel VBAで検索を実行するには、Findメソッドを使用します。

 Findを使ったマクロの例は、
  こちらの記事をご覧ください。
  こちらもご覧ください。


 Word VBA で検索をするときも、同じく「Find」を使います。
 けれども、VBAコードの書き方は、ExcelのFindと少し異なります。

 そもそも、Excel VBA のFindはメソッドに分類されているのに対し、Word VBA のFindは、Rangeオブジェクトのプロパティです。そこからして違います。
 RangeオブジェクトのFindプロパティから取得するオブジェクト、それがFindオブジェクトです。そのFindオブジェクトの各種のプロパティが、検索・置換の条件となります。
 何やらごちゃごちゃと、分かりにくいことばかりを言っていますが・・・・。


 ExcelマクロとWordマクロは、中味がほぼ同じ、とよく言っているのですが、
ことFindに関しては、「ほぼ同じ」とまでは言えないようです。





 ここで、Findを使ったWordマクロのを紹介します。
 この内容を理解できれば、いろんな場面に応用できます。
 お勧めできる使用例です(・・・と、思います。)。


Sub NijuKagi()

'選択したものと同じ文字列の前後に、『』を挿入
Dim myR As Range, myTxt As String

If Selection.Start <> Selection.End Then
  Set myR = ActiveDocument.Range(0, 0)
  myTxt = Selection.Range.Text

  With myR.Find
    .Text = myTxt
    .Replacement.Text = "『" & myTxt & "』"
    .Execute Replace:=wdReplaceAll
  End With

Else
  MsgBox "文字列が選択されていません。"

End If

End Sub
 

 なお、Word VBA に関しては、次の書籍「Word VBA入門」が参考になります。
 その中では、Wordの「Rnage」オブジェクト等に関して、詳しい解説がされています。
 「WordのRangeって、そういうことか!」ってなります。

Word VBA入門


それでは、また次の記事で
goosyun



《2023年2月3日追記》
 「はっ?Findはオブジェクト?」
 「なんで?」って思った方は、
   こちらの記事をご覧ください。
名前:
コメント:

※文字化け等の原因になりますので顔文字の投稿はお控えください。

コメント利用規約に同意の上コメント投稿を行ってください。

 

  • Xでシェアする
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする

最近の「VBAプログラミング・マクロ」カテゴリーもっと見る

最近の記事
バックナンバー
人気記事