人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Excel VBAで文字種(アルファベットかどうか)を判定したい

ひらがな、カタカナはLikeで、数値はisnumericで判定できることはわかりました。
残るは記号、漢字、アルファベットだと思うのですが、
この中でアルファベットかどうかをを判定したい場合にはどのような処理を行えば良いのでしょうか?
また記号、漢字、アルファベットの判定方法があるのであれば教えてください。

●質問者: keijun5145
●カテゴリ:学習・教育
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● smithy250

文字列の先頭だけでよければCODEという関数があります


2 ● rsc

こちらは参考になるでしょうか。
http://www.geocities.jp/samplecode_20131004/5857267747525677276443306571281752381.html


3 ● Z1000S

まず、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 関数

keijun5145さんのコメント
isnumericは1文字ずつfor文で回してすべてtrueが返ってきたら数値と判断するというロジックです。 アルファベットもlikeが使用可能なんですね。 空白セルかどうかの判定を合わせることで判定が可能な旨承知いたしました。 早速やってみようと思います。 ありがとうございます。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ