セルに設定済みのふりがなはPhoneticsコレクションで取得する
セルに設定されているふりがなを取得するにはRangeオブジェクトのPhoneticsコレクションを利用します。
コレクションになっているのは、セルに文章が書いてある場合に複数のふりがながあるためです。
なお、セルではなく文字列からふりがなを取得するのであればApplication.GetPhoneticメソッドを利用します。
構文
1 |
Property Range.Phonetics As Phonetics |
Range | 親オブジェクトとしてセル範囲を表すRangeオブジェクトを指定します。 |
戻り値 | Phoneticsプロパティの戻り値としてPhoneticsオブジェクトを返します。
余談です。 Phoneticsコレクションの各要素の名前が「Phonetics」オブジェクトというのはどうにも違和感がありますね。コレクションのうちの1つなんだから「Phonetics」じゃなくて「Phonetic(複数形sは不要)」でしょ、と。 VBAはこういうのがたくさんありますね。 |
サンプルコード
セル範囲の各セルごとに全てのふりがなを出力するサンプルです。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
Sub PhoneticsTest() Dim r As Range Dim p As Phonetics Dim i '// 選択セルをループ For Each r In Selection '// セルに設定されているふりがなを全てループ For Each p In r.Phonetics Debug.Print p.Text Next '// Forで書いた場合 For i = 1 To r.Phonetics.Count Set p = r.Phonetics(i) ' Debug.Print p.Text Next Next End Sub |
コード説明
For EachでPhoneticsオブジェクト変数pに対象セルのPhoneticsプロパティの戻り値を設定しています。
これをForで書くとr.Phonetics(1)~r.Phonetics(n)と書いてるのと同じ意味になります。
実行結果
1. セルに文章が書いてあるものとします。
2. セル範囲を選択して、上のマクロを実行します。
3. 以下のようにイミディエイトウィンドウに出力されます。
デンシャ
ノ
スコ
イソ
テイキ
ワス
キ