1/26/2025

Excel。VBA。他からコピーした表に「ふりがな」を設定したい【vbHiragana】

Excel。VBA。他からコピーした表に「ふりがな」を設定したい

<Excel VBA: vbHiragana>

Excelのふりがな情報は、直接入力した場合でないと、基本設定されていません。


Wordにある表を、Excelにコピーしてみます。


なお、Wordでは、直接入力しております。


C列にふりがな情報を表示したいので、PHONETIC関数をつかってみます。


C2には、

=PHONETIC(B2)

と設定しました。


オートフィルで数式をコピーしましたが、ふりがな情報がないので、そのまま文字情報が表示されています。


これでは、C列のふりがなをつかって、並べ替えをすることができません。


今回のように件数が少なければ、ふりがなの列に直接ふりがなを入力して対応することもできますが、件数が多くなれば、対応することが難しくなります。


そこで、Excel VBAをつかって、ふりがな情報を追加することができます。


Sub ふりがな()

    Dim i As Integer

    Dim lastrow As Long


    lastrow = Cells(Rows.Count, "a").End(xlUp).Row


    Range("b1").CurrentRegion.Offset(1, 0).SetPhonetic


    For i = 2 To lastrow

        Range("c" & i) = Range("b" & i).Phonetic.Text

        Range("c" & i).Value = StrConv(Range("c" & i).Value, vbHiragana)

    Next

End Sub


では、実行してみましょう。


B2には、ふりがな情報を追加されたことが確認できました。


そして、C列には、そのふりがな情報をつかって、ふりがなを表示しております。


しかも、「ひらがな」でです。


それでは、プログラム文を確認しておきましょう。

lastrow = Cells(Rows.Count, "a").End(xlUp).Row


変数のlastrowは繰り返し作業のために求めています。


Range("b1").CurrentRegion.Offset(1, 0).SetPhonetic

この行で、B1からのデータにフリガナを設定しています。


コピーしたデータでもこれで、ふりがな情報を追加することができました。


なお、Excelで、こういう読みかなという、ふりがななので、異なっている場合は修正が必要です。。


For i = 2 To lastrow

    Range("c" & i) = Range("b" & i).Phonetic.Text

    Range("c" & i).Value = StrConv(Range("c" & i).Value, vbHiragana)

Next


For To Nextで繰り返し処理をしております。


Range("c" & i) = Range("b" & i).Phonetic.Text

C列にふりがな情報を表示します。


これだけだと、「カタカナ」になっています。

見出し行が「ひらがな」なので、カタカナをひらがなに変換しているのが、次の行です。


Range("c" & i).Value = StrConv(Range("c" & i).Value, vbHiragana)

Excelそのものには、カタカナをひらがなに変換する関数はありませんが、Excel VBAならば、vbHiragana をつかうことで、対応することができます。