- ベストアンサー
GetPhonetic("羨ま")
Sub test() Debug.Print Application.GetPhonetic("羨ましい") Debug.Print Application.GetPhonetic("羨まし") Debug.Print Application.GetPhonetic("羨ま") End Sub の戻り値が、 ウラヤマシイ ウラヤマシ は戻るのですが、 「羨ま」は何も取得されません。 正しい日本語ではないからでしょうか? IMEで変換できないものは、GetPhoneticで取得できないという事でしょうか?
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
こんにちは。 バージョンによっても事情は異なりますが、Office IME の場合でお応えします。 > 正しい日本語ではないからでしょうか? 概ね合っていますが、少し違います。 IMEに登録した変換候補 を参照したり、 実際にIMEで変換して学習させた変換候補 を参照したり、 複数の候補の中から、使用頻度の高さや至近での変換例などから 学習して、優先度の高い順番に複数のふりがなを返す というのが.GetPhoneticですから、 > IMEで変換できないものは、GetPhoneticで取得できないという事でしょうか? の方が近いですね。 Debug.Print Application.GetPhonetic("羨ま") で ウラヤマ を返す為には、基本的には、 予めIMEで[単語の登録]をしておく必要があります。 そういう意味では、 「正しい日本語ではないから」です。 でも[単語の登録]をしなくても、 例えばの手順として、 Excelシート上でひとつのセルを選択した状態から、 "うらやま"とタイプして、 一旦、変換キーを押して、 続けて、[Shift]+[←]キーを押して、 "うらや" と "ま" を個別に変換できる状態にしてから、 "うらや"の変換候補から単漢字"羨"を選択して 確定する という作業を済ませた後で、 Debug.Print Application.GetPhonetic("羨ま") を実行すれば、 ウラヤマ が返るようになります。 また、 漢字や漢字を含む単語に関連付けられた変換候補 つまり「ふりがな候補」は、ひとつではありませんし、 IMEの[単語の登録]機能や、上記のような実際の変換履歴によって 数が増えることもあります。 実際に変換した頻度によって優先順が変わることもあります。 PC環境は勿論、ユーザーの使い方によっても 様々な違いがでるものなので、 皆に共通した絶対的な答があるようなものでもないですね。 参考に、例えば、以下を実行して試してみて下さい。 Sub try8980490w2() Dim s As String s = Application.GetPhonetic("赤") Do Debug.Print s s = Application.GetPhonetic() Loop While s <> "" End Sub おそらく、多くの環境では、 アカ と、ひとつだけ返るものと思います。 続けて、実際にIMEを使って(例えばExcelで) "せき"とタイプして"赤"に変換して確定 "しゃく"とタイプして"赤"に変換して確定 のような手順を踏んでから、もう一度、 Sub try8980490w2() を実行すると、今度は、 アカ セキ シャク の3つが戻るようになるかと、、、。 このように、使い方の影響を受けるものだ、ということだけは 意識しておきましょう。 以上、参考まで。
その他の回答 (1)
- Nouble
- ベストアンサー率18% (330/1783)
「うらやまし」、「い」 に、対して 個別に 送り仮名設定 されている ので、しょう 其の 基本単位を割った ので、送り仮名設定が 適応 されなくなった 其だけです ね 例えば 羨 此の一文字 其だけでも 設定してやれば 送り仮名は 取得できます よ お試しあれ
お礼
ありがとうございました。
お礼
ありがとうございました。