【VBA】英語にルビをセット

2020年3月17日パソコン操作

(1) フリガナをセットしたい英語

(2) 英語にセットするフリガナの文字

(3) 英語の文字数

この3要素が必要です。

    Sub rubi()
    Dim i As Long
    For i = 1 To 10
        Cells(i, 1).Characters(1, Cells(i, 3)) _
          .PhoneticCharacters = Cells(i, 2)
    Next i
    End Sub

結果

英単語にルビがセットされました

文字数をVBA内に組み込むときは、LEN関数を利用します。

    Sub rubiLen()
    Dim i As Long
    For i = 1 To 10
         Cells(i, 1).Characters(1, Len(Cells(i, 1))) _
          .PhoneticCharacters = Cells(i, 2)
     Next i
     End Sub
余分にセルを使わなくても、ルビのセットができました。

charactersオブジェクト とは

Characters オブジェクトを使用すると、文字列のうちの一部だけを対象にした修正ができます。

Cells( i , 1 ).Characters( 開始 , 文字数 ) = RGB ( 255 , 0 , 0)
のように利用します。
この場合は、セル( i 行目 , 1列目)の文字の中で、
左からの開始文字数目から文字数分、文字を赤にします。

    Sub iro()
    Dim i As Long
    i = 1
    Do While Cells(i, 1) <> ""
        Cells(i, 1).Characters(Cells(i, 2), _
        Cells(i, 3)).Font.Color = RGB(255, 0, 0)
        i = i + 1
    Loop
    End Sub

Characters.PhoneticCharacters プロパティ

ルビ文字列の取得および設定が可能です。

    Sub bubun()
    Dim i As Long
    i = 1
    Do While Cells(i, 1) <> ""
        Cells(i, 1).Characters(Cells(i, 2), Cells(i, 3)) _
        .PhoneticCharacters = Cells(i, 4)
        i = i + 1
    Loop
    End Sub