• ベストアンサー

変数の中身がアルファベットだけなのか取得するには

変数がアルファベットだけか取得するには? Sub test() Dim mystr As String mystr = "abc" If ??? Then MsgBox "アルファベットだけです" End If End Sub のように、変数の中身がアルファベットだけなのか取得するにはどうすればいいでしょうか? ひらがな、カタカナ、漢字、記号を含んでいるかどうかを評価したいです。

質問者が選んだベストアンサー

  • ベストアンサー
回答No.3

#1です。こちらからの追加補足です。 全角アルファベットもアルファベットとするには、   If Not mystr Like "*[!a-zA-Za-zA-Z]*" Then     MsgBox "アルファベットだけです"   End If 数字も仲間にいれるのなら、   If Not mystr Like "*[!0-9a-zA-Z0-9a-zA-Z]*" Then     MsgBox "アルファベットだけです"   End If のようになります。 #1への追加補足は、以上です。

VLXSSSJKPT
質問者

お礼

ありがとうございました。

その他の回答 (2)

  • m_and_dmp
  • ベストアンサー率54% (987/1817)
回答No.2

mystr がいくつかの文字からなるので、一文字ずつ分析する必要があります。 一文字目をm1 とすると、 m1=Left(mystr,1) 二文字目なら、 m2=Mid(mystr,2,1) 何文字あるか調べるにはLen 関数 数字かどうか調べるには、ISNUMBER() が使えると思います。 If(ISNUMBER(m1)=True, "数字","") ... Excel の関数 ひらがなかどうか調べるには、vba でLike が使えると思います。 If m1 Like "[あ-ん]" Then ... カタカナも同様に、 If m1 Like "[ア-ン]" Then ... 漢字かどうか調べるには、Code() が使えると思います。 If(AND(CODE(m1)>= 12322,CODE(m1)<=29734),"漢字","”) ひらがな、カタカナ、数字の識別にもCode() が使えると思います。 それぞれのコードの範囲はつぎのとおりでした。 Excel で =Code() で調べてください。 0  48 9  57 a  97 z  122 A  65 Z  90 あ 9250 ん  9331 ア  9506 ン 9587 すべてCode で処理すると関数またはマクロがうまく整理できるのではないかと思います。 記号のコードの範囲は調べていないので分かりません。 note: これらは実際に試したことはありませんので、細かいところで誤りがあるかもしれません。

VLXSSSJKPT
質問者

お礼

ありがとうございました。

回答No.1

こんにちは。 Like 演算子で、 「ひらがな、カタカナ、漢字、記号を含んでいるかどうか」 を判定させて反転させます。   If Not mystr Like "*[!a-zA-Z]*" Then     MsgBox "アルファベットだけです"   End If 以上です。

VLXSSSJKPT
質問者

お礼

ありがとうございました。