便利な機能に出会いましたので紹介します。
その名も、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