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

エクセル2000のVBAで文字種を判別する方法が知りたいのです。
内部はユニコードを使っていると思いますが例えば、

今日はカエルが鳴くほど良くない天気です。

を以下のように表示させる方法が知りたいです。

今 漢字
は ひらがな
カ かたかな
。 句読点

A 回答 (4件)

いまいち自信がありませんが。

。。。
対象はすべて全角の日本語、という前提です。

Sub Test()
 Dim CD, MSG
 CD = Asc(Selection)
 If CD >= -31936 And CD <= -31850 Then MSG = "カタカナ"
 If CD >= -32097 And CD <= -32015 Then MSG = "ひらがな"
 If CD >= -30561 And CD <= -26510 Then MSG = "漢字(第一水準)"
 If CD >= -26415 And CD <= -5468 Then MSG = "漢字(第二水準)"
 If CD >= -1444 And CD <= -949 Then MSG = "漢字(その他)"
 If CD >= -32447 And CD <= -32446 Then MSG = "句読点"
 MsgBox MSG & " です。"
End Sub

1文字を選択して(または文字の前にカーソルを置いて)実行してみてください。
    • good
    • 0

こんにちは。



独自の関数を作ることになります。ところで、

文字種を判別するのは何故ですか?
種別に文字数を数えたい?
    • good
    • 0

#1です。


ごめんなさい、Wordと勘違いしていました。Excelでしたね。

#2のかたのおっしゃるように、文字列の具体的な配置がわからないのですが、
とりあえず1文字1セルとしてです。

> 1文字を選択して(または文字の前にカーソルを置いて)実行してみてください。
    ↓
  単一セルを選択して実行してみてください。

でした。
    • good
    • 0

質問の意味内容が良くわかりません。


例の文章は、エクセルの1セルに入った文字列ですね?
>今日はカエルが鳴くほど良くない天気です。
結果は
>今 漢字
となってますが
文章ー>1文字ー>判別 を考えるのか
文章ー>語句・単語・助詞などー>全体または先頭文字判別
なのか。
ワードVBAでは、後者を「Word」で分離判別できそうですが、エクセルVBAでは適当な分離のためのメソッドが無いように思うのですが。
StrConvでvbHiraganaなどはあっても、判別は無いのでは?。(自信なし)
元の文字・語句ととStrConvで変換後の文字・語句が日と等しければひらがなと判定するぐらいか無いのでは。
他の方法は、#1のご回答のようにコードの範囲で判定するか。
    • good
    • 0

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