HOME > 即効テクニック > Excel VBA > セル操作関連のテクニック > ふりがな情報を参照する(Phoneticsプロパティ)

即効テクニック

セル操作関連のテクニック

ふりがな情報を参照する(Phoneticsプロパティ)

(Excel 2000)
対象のセル範囲のふりがな情報を表すPhoneticsコレクションオブジェクトを参照します。Phoneticsプロパティ、PhoneticsコレクションオブジェクトともにExcel2000にてふりがな機能が強化されたことによって追加された機能です。Rangeオブジェクトの下位オブジェクトになります。

 構文  Object.Phonetics     取得のみ

 設定項目    内容
  Object      対象のRangeオブジェクト [省略不可]

次のサンプルは、セル範囲のふりがなにさまざまな設定をしています。
●サンプル1●
Sub PhoneticsSamp1()

  Range("A1:A5").SetPhonetic   '--Phoneticsコレクションを作成する
  With Range("A1:A5").Phonetics
      .Visible = True          '--ふりがなを表示する
      .Font.Size = 8           '--ふりがなのフォントサイズを指定
  End With
  With Range("A1").Phonetics            '--セルA1のふりがなに対して
      .CharacterType = xlHiragana       '--文字を「かな」にする
      .Alignment = xlPhoneticAlignCenter'--配置を中央揃えにする
  End With
  With Range("A2").Phonetics            '--セルA2のふりがなに対して
      .CharacterType = xlKatakana       '--「カナ」にする
      .Alignment = xlPhoneticAlignLeft  '--配置を左寄せにする
  End With
  With Range("A3").Phonetics            '--セルA3のふりがなに対して
      .CharacterType = xlKatakanaHalf   '--「カナ」にする
      .Alignment = xlPhoneticAlignDistributed '--配置を均等割付にする
  End With
  With Range("A4").Phonetics            '--セルA4のふりがなに対して
      .CharacterType = xlHiragana       '--文字を「かな」にする
      .Alignment = xlPhoneticAlignNoControl  '--(1)配置を制御しない
  End With
  With Range("A5").Phonetics            '--セルA5のふりがなに対して
      .CharacterType = xlHiragana
      .Alignment = xlPhoneticAlignDistributed
      .Item(2).Text = "とき"            '--(2)2つめのふりがなを変更する
  End With

End Sub
Visibleプロパティで表示/非表示を切り替え、Fontプロパティでフォントを指定し、CharacterTypeプロパティで文字のタイプを指定し、Alignmentプロパティで配置を指定します。
なお、ひらがなやカタカナに対してもふりがなを表示したい場合には、(1)のステートメントのようにAlignmentプロパティに定数xlPhoneticAlignNoControlを指定してください。
また、Phoneticsコレクションの個々のメンバを参照するには、(2)のステートメントのようにItemプロパティを使用します。単語ごとのふりがながメンバになっていると考えればよいでしょう。ItemプロパティとTextプロパティを使用することで、単語単位でふりがなを変更できます。
前述したように、前バージョンまでのPhoneticオブジェクトとPhoneticsコレクションオブジェクトの個々のメンバは同じものではありません。そのことは、次のサンプルの実行結果を見ればよくわかると思います。
●サンプル2●
Sub PhoneticsSamp2()

    Dim i As Integer
    Dim mycnt As Integer

    With Range("A1").Phonetics      '----セルA1のふりがなについて
        mycnt = .Count              '----ふりがなの個数をカウント
        For i = 1 To mycnt          '----最後のふりがなまで
            Cells(2, i).Value = .Item(i).Text '----2行目に列方向に書き込んでいく
        Next i
    End With
    Cells(3, 1).Value = Range("A1").Phonetic.Text   '---セルA3にPhonetcプロパティ
                                                    '---を使用した場合のふりがな
                                                    '---情報を記述します。

End Sub
Phoneticプロパティが、セルの全体のふりがなを参照できる機能を持つのに対して、Phoneticsオブジェクトの個々のメンバーは、セル内の単語にひとつという形で存在しています。