【結論:Windows 10/11では GetPhonetic で「全候補」が取れない仕様に変わっています!】
ソースコードを冒頭に書く:
Option Explicit Sub aaa() Dim strWORK As String Dim strNAME As String '名前 '呼び出しは簡単で、調べたい文字列を渡す strNAME = InputBox("調べたい単語を入力して", "名前などを入力", "羽生") '↑羽生 将棋の はぶ先生、スケートの はにゅう どちらが表示されるのかな? strWORK = Application.GetPhonetic(strNAME) While strWORK <> "" Debug.Print strWORK MsgBox strWORK '次の候補を見たいときは、引数無しで呼び出す strWORK = Application.GetPhonetic() Wend End Sub
「昔は動いたのに…」「羽生の読み方が1つしか出ない」という悩みは、コードのミスではなくOS(IME)の仕様変更が原因です。
Win7とWin10での決定的な違いを、以下のタイムラインから確認してください。
1. 【魔法の瞬間】Win7なら「ハブ」も「ハニュウ」も両方取れる!
タイムライン: 00:54 https://www.youtube.com/watch?v=JoidvQb2BIE&t=54
内容: 古い環境(Win7 + IME 2010)での実演。本来期待していた挙動が確認できます。

2. 【衝撃の事実】Win10では「最初の1つ」で止まってしまう…
タイムライン: 01:46 https://www.youtube.com/watch?v=JoidvQb2BIE&t=106
内容: 最新環境(Win10)での実行結果。ここが現代のVBAユーザーが直面する「罠」です。
3. 【検証結果】他の漢字(トオル)でも同様の結果に
タイムライン: 02:20 https://www.youtube.com/watch?v=JoidvQb2BIE&t=140
内容: 他の多読漢字でもテスト。関数自体の限界を証明しています。
4. 【正直にお伝えします:誠実なポイント】
・この動画は「解決策の提示」ではなく、OSによる「不可解な仕様変更の報告」です。
・「解決できない」という事実を知ることで、無駄な調査時間を削減できます。
▼
皆さんの環境で「OSを上げたらマクロが動かなくなった…」という経験はありますか?
もし他の関数でも怪しい挙動があれば、ぜひコメント欄で教えてください。
#ExcelVBA #GetPhonetic #ふりがな #Windows10 #プログラミング検証
