アプリ版:「スタンプのみでお礼する」機能のリリースについて

セルA1の内容が、全角カタカナか半角カタカナか知りたいです。

エクセル関数又はマクロコマンドがあるはずだと信じて探していますが、見つかりません。TYPE関数では、セルの内容が数値か文字列かを調べられますが、その文字列がカタカナか英数字かなどを調べられません。ご存知の方はお教えください。

A 回答 (8件)

半角を全角にしたいとかではなく、調べるだけですか?

    • good
    • 0

全角半角変換なら、これで可能ですよ。


https://kokodane.com/kan35.htm
    • good
    • 0

NUMBERSTRING関数を使って数値を漢字の2バイト文字にする。


そしてLENB関数で文字列のバイト数を数え、
元の値をLENB関数で文字列のバイト数を数え、
その二つを比較して、同じなら
 「1バイト文字の数字を含まない」
と判断することはできるけど、カタカナかあ。

JIS関数やASC関数で全半角を切り替えると、
カタカナだけでなく、アルファベットや数字も変わるからなあ。
関数だけを使う場合は一筋縄ではいかないと思う。
もしも英数字を含まないというのであれば、上記のようにLENB関数を使って文字列のバイト数を比較することで判断はできると思いますが、
現時点では何とも言えない状態です。
    • good
    • 0

VBAならこちらが参考になるかと。


http://officetanaka.net/excel/vba/tips/tips145.htm
    • good
    • 0

元の 文字列が、


セルA6に あるとして、
セル内が 全て、
全角片仮名かは、
=SUMPRODUCT((CODE(MID($A$6,COLUMN(OFFSET($A$1,0,0,1,LEN($A$6))),1))=ROW($A$9506:$A$9590))+0)=LEN($A$6)

半角片仮名かは、
=SUMPRODUCT((CODE(MID($A$6,COLUMN(OFFSET($A$1,0,0,1,LEN($A$6))),1))=ROW($A$177:$A$211))+0)=LEN(A6)

で 判りますよ。
    • good
    • 4
この回答へのお礼

一番わかりやすかったため、ベストアンサーにさせていただきました。
最終的には以下のようなコードで使用しました。
ありがとうございます!!

=IF(B18="",TRUE,OR(SUMPRODUCT((CODE(MID($B$18,COLUMN(OFFSET($A$1,0,0,1,LEN($B$18))),1))=ROW($A$9506:$A$9590))+0)=LEN($B$18),SUMPRODUCT((CODE(MID($B$18,COLUMN(OFFSET($A$1,0,0,1,LEN($B$18))),1))=ROW($A$177:$A$211))+0)=LEN($B$18)))

お礼日時:2019/04/15 10:20

=CODE関数で調べたら如何でしょう。



半角カナは、半角読点、鍵括弧、区点、長音記号、濁点、半濁点を含んで、161~223 ですが、全角カナは 9505~9590 です。
一般に、
=ASC(全角カナ)=半角カナ
=JIG(半角カナ)=全角カナ
に変換可能だけど、次の全角カナに相当する半角カナは存在しません。
ヮ(9582)、ヰ(9583)、ヱ(9584)、ヴ(9585)、ヵ(9586)、ヶ(9587)
    • good
    • 1

[No.6]誤謬訂正、


=JIG(半角カナ)=全角カナ
の「G」は「S」の間違いでした。
    • good
    • 1

全角・半角


=LENB(A1)<>LEN(A1)

英数が入らない場合の判定
=IF(LENB(A2)<>LEN(A2),IF(ASC(A2)<>T(A2),"全角カタカナ","全角ひらがな"),"半角カタカナ")

以下は趣旨が違うかもしれませんね。
これは、英字の判別ができません。
=IF(ISNUMBER(A1*1),"数字",IF(LENB(A1)=LEN(A1),"半","全")&IF(LENB(ASC(A1))=LEN(T(A1)),"カタ","かな"))


'//標準モジュール
Function CharType(ByVal strText As String)
Select Case True
Case strText Like "": ret = ""
Case strText Like "[ァ-ン]*": ret = "半角カタカナ"
Case strText Like "[0-9]*": ret = "数字"
Case strText Like "[A-Za-z]*": ret = "英字"
Case strText Like "[ァ-ン]*": ret = "全角カタカナ"
Case strText Like "[ぁ-ん]*": ret = "全角ひらがな"
Case strText Like "[一-龠]*": ret = "漢字"
Case Else: ret = "その他"
End Select
CharType = ret
End Function

記憶にある範囲なので、細かな文字の範囲は修正する必要があるかもしれません。
    • good
    • 1

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています


このQ&Aを見た人がよく見るQ&A