Like演算子を使った判定

正規表現でやってもいいんだろうけど、そんなに複雑でないのならLike演算子だけでいける。

郵便番号チェック
n = "123-456z": s = n Like "###-####": MsgBox s 'False

n = "123-4567": s = n Like "###-####": MsgBox s 'True

n = "123-4567": s = n Like "###-####": MsgBox s 'True

パターン文字#は数字にマッチする。全角でもTrueを返す。まぁ、全角とはいえ数値な訳だし、後からStrConvで半角にしてやれば問題無いかな。

英字チェック
n = "HOGe": s = n Like "[A-Z][A-Z][A-Z][A-Z]": MsgBox s 'False

n = "HOGe": s = n Like "[A-Z][A-Z][A-Z][A-z]": MsgBox s 'True

n = "HOGe": s = n Like "[A-Z][A-Z][A-Z][A-z]": MsgBox s 'False

パターン文字を[A-Z]とすると、英大文字の場合Trueを返す。小文字も許容したい場合、[A-z]とする。全角は許容しない。