質問: Application.GetPhonetic(txt) '読みを再変換して出力(全角で出力される) End Function ``` 上記 Macro1 を動かした時の結果は プログラム右のコメントの通りです。 上6つは期待した通りの結果が出力されているのですが、 下2つについては、中途半端に アルファベットがカタカナに変換されています。 こうなってしまう条件と回避方法を教えて頂ければと思います。 確認できたのは、『USB』と『ETC』ですが他にもあるかもしれません。 関係あるかわかりませんが、この現象が起こっているパソコンのIMEは 『Microsoft Office IME 2010』......らしいです。 (コントロールパネル→(表示方法:大きいアイコン)地域と言語→キーボードと言語 タブ→キーボードの変更(C) より確認) また、複数のパソコンで動かすことが想定される為、 個々の設定が影響しない、解決方法だと嬉しいです。 以上、よろしければご教授願います。
回答: 同じく『Microsoft Office IME 2010』の環境なので試してみました。 どうやらIMEの辞書から変換の優先度が高い順のような気がします。 最初は正確に「USBケーブル」と出力されていましたが、「USBケーブル」というのをわざと「うsbケーブル」のように変換させていたら、いつの間にかそれが出るようになりました。 なので、そのように誤変換されているPCは、そのPCを使っている人がそのように誤変換をしてしまった過去があるのではと思います。 結論としては、GetPhonetic関数だけでは複数変換候補がある場合、どれを選択するかは機械では判断できないので、正確な変換は無理です。 ある程度語彙が決まっているのであれば、シートか何かに変換表でも作ってそれに従って変換させた方が確実です。 もしくは手修正を前提とした一次変換として使うのであれば有用です。