OR の 代わりに Like を使う
最近のお気に入りは、OR演算子の代わりに、Like演算子を使うこと。
使える場面は限られるが、例えば下記のような場合。
<条件>
- 文字列の一文字目がAまたはBまたはCのとき、〇を返す。
- 上記以外の場合、×を返す。
昔は、こんな風に書いていた。
Function LikeTest(str As String) As String If Left(str, 1) = "A" Or Left(str, 1) = "B" Or Left(str, 1) = "C" Then LikeTest = "〇" Else LikeTest = "×" End If End Function
テストしてみると、こんな感じになる。
Sub test() Debug.Print LikeTest("A123") Debug.Print LikeTest("D456") Debug.Print LikeTest("C789") End Sub
或いは、こんな風に書くこともできる。
Function LikeTest(str As String) As String Select Case Left(str, 1) Case "A", "B", "C" LikeTest = "〇" Case Else LikeTest = "×" End Select End Function
さらに、Like "[ABC]" が「AまたはBまたはC」を意味することを
用いれば、こんな書き方が可能だ。
Function LikeTest(str As String) As String If Left(str, 1) Like "[ABC]" Then LikeTest = "〇" Else LikeTest = "×" End If End Function
せっかくLike演算子を用いるのだから、ワイルドカードを用いたこちら
の記述の方が、より良いかもしれない。
Function LikeTest(str As String) As String If str Like "[ABC]*" Then LikeTest = "〇" Else LikeTest = "×" End If End Function
数珠繋ぎにORを書くことに飽いた方は、ぜひ一度お試しください。
なお、最後にどの用法に落ち着くかは、時と場合と各位のお好みで。
参考まで。