【Word VBA】Like演算子を使って文字列を判定するWordマクロ

2011年1月16日

便利な機能に出会いましたので紹介します。

その名も、Like演算子

正直、すごくうれしい。この出会いに感謝!!

やっぱり、こういう比較方法ってあるんですよね。

今までずっと、文字列を比較する場合に、「ワイルドカード」的な要素を使ってみたいと思っていました。

たとえば、ある文字列があって、それが「半角英数字で始まるものなのか?」を知りたいときってありませんか?

myStr(1) = "あいうえお"
myStr(2) = "a"
myStr(3) = "123"

上記のうち、半角英数字ではじまる文字列は、myStr(2)とmyStr(3)ですね。

これを自動で簡単に判定してもらいたいなと思っていました。

ありました。それが、Like演算子。

判定する文字列に、ワイルドカードのように判定パターンを使うことができます。

例文

上記の判定であれば、以下の文で判断できます。

if myStr(1) Like "[0-9a-zA-Z]*" then

(翻訳)
もし、myStr(1)が0~9、a~z、A~Zのうちいずれか1文字で始まる文字列であれば、

ワイルドカードの解説

上記で使ったワイルドカードは2つ

(1) [0-9a-zA-Z] : 0~9、a~z、A~Zのうちいずれか1文字

(2) * : 任意の数の文字(0文字以上)

これらを連続させると、上記のような条件になります。

マクロ


Sub Like_Operator()

 Dim myStr(1 To 3) As String
 Dim i As Integer
 
 myStr(1) = "あいうえお"
 myStr(2) = "a"
 myStr(3) = "123"
 
 For i = 1 To 3
 
  If myStr(i) Like "[0-9a-zA-Z]*" Then
   MsgBox "「" & myStr(i) & "」は、半角英数字で始まる文字列です。"
  Else
   MsgBox "「" & myStr(i) & "」は、半角英数字で始まる文字列ではありません。"
  End If
 
 Next

End Sub

-コード
-,