セルに設定済みのふりがなはPhoneticsコレクションで取得する

セルに設定されているふりがなを取得するにはRangeオブジェクトのPhoneticsコレクションを利用します。

コレクションになっているのは、セルに文章が書いてある場合に複数のふりがながあるためです。

なお、セルではなく文字列からふりがなを取得するのであればApplication.GetPhoneticメソッドを利用します。

構文

Range 親オブジェクトとしてセル範囲を表すRangeオブジェクトを指定します。
戻り値 Phoneticsプロパティの戻り値としてPhoneticsオブジェクトを返します。

余談です。

Phoneticsコレクションの各要素の名前が「Phonetics」オブジェクトというのはどうにも違和感がありますね。コレクションのうちの1つなんだから「Phonetics」じゃなくて「Phonetic(複数形sは不要)」でしょ、と。

VBAはこういうのがたくさんありますね。

 

サンプルコード

セル範囲の各セルごとに全てのふりがなを出力するサンプルです。

 

コード説明

For EachでPhoneticsオブジェクト変数pに対象セルのPhoneticsプロパティの戻り値を設定しています。

これをForで書くとr.Phonetics(1)~r.Phonetics(n)と書いてるのと同じ意味になります。

実行結果

1. セルに文章が書いてあるものとします。

2. セル範囲を選択して、上のマクロを実行します。

3. 以下のようにイミディエイトウィンドウに出力されます。
デンシャ

スコ
イソ
テイキ
ワス