Application.GetPhoneticが壊れた???

GetPhonetic関数がおかしい???

GetPhonetic関数の異状

Application.GetPhonetic関数は、2回目以降引数を省略すると、まだ返していないふりがな文字列を返すはず。

しかしながら、何か様子がおかしいのである。

たとえば、次のコード。

リスト1 標準モジュール
Public Sub testGetPhonetic()
  Debug.Print Application.GetPhonetic("馬")    '……(1)'
  Debug.Print Application.GetPhonetic()    '……(2)'
End Sub

アホみたいなコードだけれど、これを実行すると、(1)を実行したとき(1回目)に「ウマ」が出て、(2)を実行したとき(2回目)に「マ」とかが出るはず。

だのに、なぜか今の私の環境だと

f:id:akashi_keirin:20171216212808j:plain

こうなる。

(2)のGetPhoneticが "" を返しているっぽい。これは、漢字を別のに変えても同じ。1つしかふりがなを返してくれない。

一応、Officeの修復もしてみたんだけれどダメ。いったい何が起きているんだろう???

@akashi_keirin on Twitter

追記

Dir関数で実験してみると、ちゃんと

    Dir()

で次の返り値を返してくれている。マジでわけがわからないよ……orz

さらに追記

ちなみに、

Public Sub testGetPhonetic()
  Debug.Print Application.GetPhonetic("馬")
  Debug.Print Application.GetPhonetic()
  Debug.Print Application.GetPhonetic()
  Debug.Print Application.GetPhonetic()
  Debug.Print "***ち~んw***"
End Sub

を実行すると、

f:id:akashi_keirin:20171217092221j:plain

こうなる。

やっぱり、2回目以降のGetPhonetic()は、空文字を返している。

ちなみに、最後に

Debug.Print Asc(Application.GetPhonetic())

を加えて実行すると、

f:id:akashi_keirin:20171217092141j:plain

f:id:akashi_keirin:20171217092158j:plain

となるので、本当に "" が返っているみたい。

なんでこうなってしまったんだーーー!