パソコン悪戦苦闘記録

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
名前:
コメント:

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

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

 

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

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

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