ExcelのVBAで漢字の名前にふりがなを振る方法

[`evernote` not found]
[`livedoor` not found]
[`yahoo` not found]

最近、仕事でVBAをいじってみて、その便利さと面白さに気づきました。ひらがなとカタカナの変換とか、半角と全角の変換とか……。

それはともかく、今回はエクセルのVBAを用いて、自動的に指定のふりがなを振る方法について。

例えば下記のように、A列に苗字と名前を全角スペースで分けた漢字で書いた名前があり、B列にA列の名前のふりがながあるとします(こちらも苗字と下の名前は全角スペースで分けてある)

名前参考サイト:
同姓同名探しと名前ランキング | 姓名、名前、名字、苗字の分布と由来
赤ちゃん名付け実績No.1/無料 赤ちゃん名づけ|キラキラネームランキング

この時、A列の漢字での名前のほうに、B列のふりがなを振っていくにはどうすればいいか。
その前にエクセルには自動でふりがなを振ってくれる機能があるのでやってみました。

最初のほうは一致してますが、最後のほうはダメでした。

というわけで、ふりがなを自動的に振っていく方法を調べてみると、PhoneticCharactersというプロパティに指定のふりがなを代入すると、ふりがながセットされることが分かりました。

以下、実装したコード(プロシージャ名が日本語になってます。初めて見た時は慣れませんでした)。

以下、実行結果。

ふりがなを振ることができました。

以下、おまけ。

VBAで特定のセルにセットされているふりがなを取得したいことがあると思います。調べてみると、Application.GetPhoneticというメソッドを使うと取得できると分かり、A10セルをアクティブにした後、下記のスクリプトを実行してみました(参考:VBAでふりがなを取得する方法)。

以下、実行結果

なんと、セットしたふりがなではなく、最初に自動で割り振られたふりがなの値を取得しました。VBAでセルにセットしたふりがなを取得したい場合は、Application.WorksheetFunction.Phoneticを利用しなければいけないようです。

以下、実行結果
furigana3

ところで、ふりがなって日本以外の国でもあるのだろうか? 英語版のWikipedia(Furigana – Wikipedia, the free encyclopedia)を見ると、日本独特の文字っぽいけど。HTML5にrubyタグ追加されたけど、日本語以外のサイトでは使われてないのだろうか?