• ベストアンサー

セル内の文字列が日本語か英語かを厳密に識別したい

bys07405の回答

  • bys07405
  • ベストアンサー率38% (37/97)
回答No.4

#1です。 文字列として"ABC"と"いろは"とあるとします。 JIS関数で全角変換をすると "ABC"→"ABC" "いろは"→"いろは" この変換後の文字列数をLENB関数で数えると(文字数をバイト単位で数える) "ABC"→6文字 "いろは"→6文字 となります。 ASC関数で半角変換をすると "ABC"→"ABC" "いろは"→"いろは" この変換後の文字列数を同じくLENB関数で数えると "ABC"→3文字 "いろは"→6文字 ここで JIS関数で変換した文字数=ASC関数で変換した文字数*2 だったら英語、イコールでなければ日本語が混じっていると判断しています。 ただ、ここで書いていて気づいたのですがカタカナは半角カタカナがあるためうまくいきませんね。「漢字・ひらがなが1個でも」という条件にしか適合しません。申し訳ありません。 (例題はカタカナと一緒に漢字またはひらがながあったためたまたまうまくいっていました) もう一件追加の質問は、その質問のリンク先か質問Noがあるとありがたいです...

関連するQ&A

  • マクロを使って文字列を分類したい。

    マクロを使って、次の処理を行うマクロを作りたいのですが、 まず、漢字・ひらがな・カタカナ・数時・アルファベットを識別するコードの抽出方法と、コードの一覧がわかりません。 それから、文字列の処理の関数がなかなか思いつきません。 2年ほどマクロを使っていません。エクセルも2007になり、かなり勝手が違います。 できれば、マクロを示していただければありがたいのですが、 重要なヒントを示していただいても構いません。 ----------------------------------------------- セル(H、5)の中に、いろいろな文字列があります。 例えば、 「東京1月アメリカEUやまとChinaイギリス日本2009年おわり」 ですが、 これを 漢字をA列に1行から順に、 東京 月 日本 年 ひらがなをB列に1行から順に、 やまと おわり カタカナをC列に1行から順に、 アメリカ イギリス 数字をD列に1行から順に、 1 2009 アルファベットをE列に1行から順に、 EU China というように出力するマクロを作りたいのです。 よろしくお願いします。

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

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

  • 日本語が含まれていたらtrueを返すようにするには?

    UTF-8のコードの文字列の中に日本語(ひらがな、カタカナ、漢字)が含まれていたらtrueを返す関数はどのように書いたらよいのでしょうか?英語のみなら falseを返す関数でも構いません。どうかよろしくお願いいたします。

    • ベストアンサー
    • Perl
  • 日本人と日本語について

    日本人は平仮名カタカナ漢字、英数字など使い分けています。 カタカナを使って表現が絶妙な時もあります。 中国ではなんでも漢字で表します。 韓国はハングル文字と漢字です。 アメリカは英数字などだと思います。 他に知ってるのはフランス語です。 フランスは数字の表現が変だと思いました。 それぞれのお国柄で異なると思います。 ところでプログラミング言語は英数字ですね。 日本人の弱いところにもなるようです。 母国語の意味。 日本の言葉は奥が深くてとても難しいと思います。 日本語の表現についてのご考察をお願い申し上げます。

  • エクセルに特定の文字が入っていないセルをみつけたい

    数万行にわたって、ランダムにセルに 文字(漢字、カタカナ、ひらがな)が入っています。 その中で特定の漢字一文字、仮に「男」として 男が入っていないセルを全て発見したいのですが… ※但し、空白セルもありますが、空白セルを無視したい。 なにかよい条件式、もしくはマクロは ないものでしょうか? お知恵をおかしください。

  • セル内の文字列に複雑な処理をしたい

    セルの中の複数の異なる文字列を以下のように処理したいのですが、Excelの標準の文字列操作の関数で試行錯誤してみたのですが、どうもうまくできませんでしたので、ご存知の方がいらっしゃいましたらご教授ください。VBAで処理しないとできないかもしれませんがよろしくお願いします。 あるリストのC列に備考欄が設けてあり、次のようなデータが入っています。 4/30 みかんを買った(強制改行して) 5/1 りんごを売った 5/2 ぶどうを食べた 5/5 すいかを買った このセルを調べて、 (1) セル内に"みかん"と"りんご"という文字列があったら、これを取り出して、右隣のセルに表示           (結果)⇒ みかん りんご (2) セル内に"みかん"と"りんご"という文字列があったら、これを"A","B"に置き換えて、右隣のセルに表示          (結果)⇒ A B (3) セル内の数値データと"を食べた"、"を買った"、"を売った"を取り除いて、右隣のセルに表示          (結果) ⇒ みかん りんご ぶどう すいか   (4) セル内に"か"を含む文字列があったら個数に関係なく"A"に置換して右隣のセルに表示             (結果) ⇒ A   すべて取り出したい文字列(上の例ではみかん、りんご)や置換したい文字列(A、B)以外の文字列は全てクリアして表示しないようにします。少し複雑ですが、やり方をご存知の方がいらっしゃいましたら、お教えください。

  • 日本語

    日本語がどうやって出来たのか教えてください。 漢字は中国からやってきたのですよね? ひらがなやカタカナは、日本の人が作ったんですよね? なんでひらがなやカタカナを作ったんでしょうか?知っている方がいたら教えてください。お願いします。

  • バイナリファイル中の日本語文字列の取り出し

    C++にて,バイナリファイル中から日本語の文字列を取り出す処理に苦心しています. 具体的にはPDFファイルのXMPの記述部のXMLに日本語が含まれる場合なのですが,日本語(この場合はUTF-8ですね)の部分が含まれる部分をfread()で読み出してchar[]型の配列に入れて,printfで表示する(漢字コードの変換処理はとりあえずnkf等でUTF-8→SJISに変換)と文字化けします. Javaで同じような処理をしたときは,String の変数にUTF-8で日本語の文字列が挿入され,その文字列を扱うことができたのですが,C++での扱いがわかりません. ご教授よろしくおねがいします.

  • 日本語について

    日本語では、幾つの文字を使うのでしょうか? 例えば英語だとA~Zの26文字ですが、 日本語だと、ひらがな、カタカナ、漢字、 時にローマ字も使ったり。 おおよそでいいので、特に漢字の文字数を ご存知の方、教えて下さい。自分で調べようと 検索を試みましたが、ヒットしませんでした。

  • 日本語の基礎は中国語なのでしょうか?

    日本の文字の歴史について質問させていただきます。漢字が中国から伝わったあと、何らかのきっかけで、日本の使い方に合うように平仮名、カタカナを生んだという流れなのでしょうか?