Like演算子 | みんなのワードマクロ

みんなのワードマクロ

ワードマクロで、文書作成とオフィス事務を効率化!!

----------------------------------------
この記事を新しいサイトに転記しました
----------------------------------------

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

その名も、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

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

40  For i = 1 To 3

50    If myStr(i) Like "[0-9a-zA-Z]*" Then
60      MsgBox "「" & myStr(i) & "」は、半角英数字で始まる文字列です。"
70    Else
80      MsgBox "「" & myStr(i) & "」は、半角英数字で始まる文字列ではありません。"
90    End If

100  Next

End Sub