- 締切済み
カナ変換について
EXCELVBAでテキストボックスを2つ用意して1つには 普通にローマ字入力し漢字変換をして、もう1つのテ キストボックスにはその入力した文字を自動カナ変換 してそのままカタカナ表示させたいのですが出来ません。 教えて下さい。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
こんばんは。 >ローマ字入力した時のひらがなと、変換したときのカナの読み方が、漢字によっては変わるということは、 具体例がないので、分かりにくいですが、たとえば、「幸子」という漢字のようなものでしょうか? 「ゆきこ」か「さちこ」というものですが、おそらく、ワークシートのPhonetic 関数を使えば可能ではないか、と思っています。それに関しては、単独のTextBox などでは成功しないと思います。私は、長い間、この種のコードを実験してみて、GetPhonetic のIME取り出しからのハズレ率は、10分の1程度だと思っています。しかし、GetPhonetic で取り出して、それが失敗したら、そのまま、別の操作をせずに、GetPhonetic 関数を実行すれば、次候補が出てきます。 IME ではふりがな候補の並べ替え処理を行った結果を、呼び出し元のアプリケーションに返しますが、この並べ替えの処理では、その単語どうしの接続の関係などで、そのふりがなが決定されるために、表示されるふりがな候補の先頭が、必ずしも先頭にない場合があるそうです。そうした問題解決は、おそらくC言語の分野になるのだと思います。VB系を調べてみましたが、解決策が見当たりません。ですから、他の方法では、API関数で取れるのかとは思います。 私の知る範囲では、VBAでは、GetPhonetic のレベルで、だいたいは、解決しているように感じています。しかし、それでは満足しないとしたら、根本的に、言語を変えるか、または、TextBox という環境を変えるか、検討してみてもよいかと思います。 また、私は、自分のレベルを超えるコードは責任を取れないので、コードとしては控えはあっても掲示は出来ませんから、その種の問題に得意な方のサポートをお待ちになってみてもよいかとは思います。いずれにしても、大変なことだと思います。 >出来れば入力中にそのままカナにできるとありがたいです。 なお、VBAでは、IMEの入力中に、取得することは不可能だと思います。カナを入れるならカナを入れ、それをIMEを呼び出して再変換するなどしないとダメだと思います。
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 ローマ字→漢字変換→テキストボックス→カナ変換 MS-IMEのみが条件ですが、文字列は漢字を入れます。 例: Ret = Application.GetPhonetic(文字列)
お礼
回答ありがとうございます。 一度、漢字変換したものをカナ変換すると実際ローマ字 入力したときの平仮名と変換したときのカナの読み方が 漢字によって変わる場合があります。 出来れば入力中にそのままカナにできるとありがたいです。