つれづれ電脳記(日くらしPCに向かひて)

つれづれなるままに、日くらしPCに向かひて、その悪戦苦闘ぶりをそこはかとなく書き付くるおじさん。たまに雑談[管理人:goosyun]

つれづれなるままに、日くらしPCに向かひて、デジタル関係の悪戦苦闘ぶりをそこはかとなく書き付くるおじさんです。
たまに雑談してます。連絡・問い合わせフォームは、ページ最下部に置いています。[著者(運営人):goosyun]

(当ブログには本文中に広告リンクが含まれています。)

Wordマクロの=とLikeの使い分け

 Wordマクロで検索、置換を実行するためのVBAコードは、次のとおりです。

Sub aaaaa()
With ThisDocument.Range(0, 0).Find
  .Text = "田中??"
  .MatchWildcards = True
  .Replacement.Text = "山本太郎"
  .Execute Replace:=wdReplaceAll
End With
End Sub

 上記コードのうち、
   .Text = "田中??"
の部分を、
   .Text Like "田中??"
としてしまいそうですが、それは間違いです。

 「?」というワイルドカードを記述しているので、
つい「Like」では?って、なりそうです。
 ですが、ここではプロパティの設定、代入を行っているので、「=」です。
 FindオブジェクトのTextプロパティに値を代入しているのです。ですから、「=」を使うことになります。


 

 以上の「=」に対し、Like演算子は、文字列を比較するために使用します。
 左辺と右辺のパターンが一致するかどうかを調べることができます。
 
 使用例は、次のとおりです。
 
Sub bbbbb()
With ThisDocument.Range(0, 4)
  If .Text Like "田中??" Then
   .Text = "山本太郎"
  End If
End With
End Sub

 文書先頭の4文字と、"田中??"とを比較するので、この場合は、
「=」では間違いで、「Like」を使います。

 慣れてくれば、「=」と「Like」の区別ができるようになりますが、最初のうちは、なかなか区別がつかないものです。





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