• ベストアンサー

エクセルでセルの中身が漢字かどうか識別する方法は?

セルの内容が、数値か、文字列か、空白かどうかは関数で出来るのですが、文字列の場合、それが漢字(ひらがな、かたかな含む)かそうではないのか識別できる関数またはVBAはないでしょうか?

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

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

数式を書き間違えていました。 D25セルを検査する場合は、 =IF(AND(CODE(D25)>=12322,CODE(D25)<=29734),"漢字","漢字以外") ですね(汗)。

AQUALINE
質問者

お礼

ありがとうございます。おそくなってすみません。

すると、全ての回答が全文表示されます。

その他の回答 (5)

  • tamazo-
  • ベストアンサー率60% (35/58)
回答No.6

全角文字を1つでも含むかどうか、ということに限定した場合、 LENとLENBの結果が同じなら半角文字のみ、異なるなら全角を1つ以上含む(結果の差=全角文字数) という判定はどうでしょう。

AQUALINE
質問者

お礼

ありがとうございます。おそくなってすみません。

すると、全ての回答が全文表示されます。
  • maruru01
  • ベストアンサー率51% (1179/2272)
回答No.5

こんにちは。maruru01です。 No.3(No.4)の方の付けたし程度ですが、漢字コードに関するページを1つ紹介します。 http://hp.vector.co.jp/authors/VA017832/hide_chimarl/chimarl09_03.html

参考URL:
http://hp.vector.co.jp/authors/VA017832/hide_chimarl/chimarl09_03.html
すると、全ての回答が全文表示されます。
回答No.3

指定したセルの先頭文字が漢字か否かを識別する式は、CODE関数を使って、以下のようになります。 =IF(AND(CODE(D25)>=12322,CODE(D26)<=29734),"漢字","漢字以外") ただし、CODE関数は指定したセルの先頭文字の文字コードしか返しませんので、指定したセルの2文字目以降もチェックしたい場合には(このままでは)使えません。 12322はJIS漢字の先頭「亜」の文字コード(シフトJISコードの10進数、29734は同じく末尾の「熙」の文字コードです。 ひらがな・カタカナを含むのであれば、9250以上という条件になりますが、実際には全角英数文字は含むのか?、全角記号は含むのか? 全角ギリシャ文字は含むのか? IBM拡張文字などの外字は含むのか? 等々、AQUALINEさんがどういう条件で判定したいのかによって、数式は変わってきます。 IMEパッドなどを参照して、CODE関数の引数に適当な文字コードを指定してください。  

AQUALINE
質問者

お礼

ありがとうございます。おそくなってすみません。

すると、全ての回答が全文表示されます。
noname#4564
noname#4564
回答No.2

> セルの内容が、数値か、文字列か、空白かどうかは関数で出来るのですが、 > 文字列の場合、それが漢字(ひらがな、かたかな含む)かそうではないのか > 識別できる関数またはVBAはないでしょうか? 自分で作るしかないでしょう。 ひらがな、カタカナの文字コード表を作り、マッチングを掛よいと思います。 (すでに誰かがおなじものを作っている可能性もありますので、探した方がよい かもしれません)

AQUALINE
質問者

お礼

ありがとうございます。おそくなってすみません。

すると、全ての回答が全文表示されます。
noname#148473
noname#148473
回答No.1

全角の英数字や記号をどちらに含むのかによって、 処理の仕方が変わってくると思います。 また、英数字と漢字が混ざっていた場合はどうするのかも 補足してください。 もし全角と半角を見分けられれば良いということならば、 =IF(A1=JIS(A1),"全角です","半角です") でOKです。

AQUALINE
質問者

お礼

ありがとうございます。 「数字を除く英字(半角全角とも)、かたかな、漢字、ひらがなを一つでも含むもの」でひとくくりに出来ればいいです。

すると、全ての回答が全文表示されます。

関連するQ&A