ひらがな、カタカナはLikeで、数値はisnumericで判定できることはわかりました。
残るは記号、漢字、アルファベットだと思うのですが、
この中でアルファベットかどうかをを判定したい場合にはどのような処理を行えば良いのでしょうか?
また記号、漢字、アルファベットの判定方法があるのであれば教えてください。
まず、IsNumeric 関数は、数値かどうかの判定ではありませんが、そこは大丈夫でしょうか?
式が数値として評価されるかどうかを示すブール値を返します。
IsNumeric 関数
例えば、
IsNumeric("&H10") 16進表記
IsNumeric("1E4") 指数表記
などは、Trueを返します。
数字だけの文字列かどうかであれば
Not 文字列 Like "*[!0-9]*"
で判定できます。
0から9以外の文字が含まれているかを判定し、それを"Not"で否定することで数字だけか判断しています。
ただし、長さ0の文字列でもTrueが返るので、合わせて判定する必要があります。
1桁の数字であれば、
文字 Like [0-9]
でOK
必要であれば、全角も含めて
Not 文字列 Like "*[!0-90-9]*"
または
文字 Like [0-90-9]
として判定もできます。
!については、
[ !charlist ] 引数 charlist に含まれない任意の 1 文字
Like 演算子
アルファベットも同様に
Not 文字列 Like "*[!a-zA-Z]*"
で(長さ0判定も必要)
単一文字であれば、
文字 Like [a-zA-Z]
でOK
漢字の判定は、正規表現を使ってUnicodeの範囲指定かなぁ?
VBAで正規表現を使う (1/3):CodeZine(コードジン)
Unicodeで「漢字」の正規表現 – ものかの
記号はどの程度の範囲かわからないのではっきりは言えませんけど、
Asc関数で判定できなければ、やっぱり正規表現でUnicode判定?
Asc 関数
isnumericは1文字ずつfor文で回してすべてtrueが返ってきたら数値と判断するというロジックです。
2018/06/06 05:57:20アルファベットもlikeが使用可能なんですね。
空白セルかどうかの判定を合わせることで判定が可能な旨承知いたしました。
早速やってみようと思います。
ありがとうございます。