前回の記事「Select Caseステートメントの解説
」で紹介しましたSelect Caseステートメントに関連するマクロです。
1つ興味深い判定方法があったので、少しサンプルを載せます。
アルファベットの例ですが、ひらがなや漢字を使っても同じようなことができます。
▼このマクロでできること
マクロを実行すると文字列を入力するためのInputBoxが表示されます。
入力した文字列を判定します。
例では、macroとmicroの間にある文字列、また、MacroとVBAの間にある文字列です。
実際の辞書の並び順での判定とは異なりますので、判定の癖をつかむのにご利用ください。
▼マクロの解説
Select Case ステートメントを利用しています。
ここでの判定にコツがあります。
"macro" To "micro"とした場合、一番予想しやすい考え方は、辞書におけるmacroという項目から、microの項目までの文字列が判定されると思ってください。
ただ、デフォルトの設定では大文字と小文字との区別がなされてしまうため(Select...Case ステートメント (Visual Basic)
)、例えば、大文字のMADと入力すると「その他」と判定されてしまいます。
わかりにくいかもしれませんが、大文字の半角英字は、小文字の半角英字よりも先に出現するため、MADは、Macro以降の単語ではないわけです。
判定の順序は、以下の「記号と特殊文字」ダイアログに表示されるunicodeの順序だと思います(文字列についてはまだわからないことが多いため予想ですが)。
アルファベット順、数字の昇順、記号、あいうえお順など記載されています。
あと、辞書と違う点では、macroの後に数字や日本語やひらがなが記載されていてもいいという点です。
「macroマクロ」としても「macro~microの文字列ですね。」と表示されます。
いろいろとお試しください。
▼マクロ
Sub 文字列の判定()
Dim myString As String
myString = InputBox("文字を入力してください。")
Select Case myString
Case "macro" To "micro"
MsgBox "macro~microの文字列ですね。"
Case "Macro" To "VBA"
MsgBox "Macro~VBAの文字列ですね。"
Case Else
MsgBox "その他"
End Select
End Sub
▼関連記事
【サイト紹介】Select Caseステートメントの解説
Select...Case ステートメント (Visual Basic)