1/08/2023

Excel。VBA。読み込んだデータのふりがなを設定し列に表示したい【Furigana】

Excel。VBA。読み込んだデータのふりがなを設定し列に表示したい

<Excel VBA: vbHiragana>

データを読み込んだら、ふりがなの列がないので、作ることしました。


Phonetic関数を使ってふりがなを表示してもいいのですが、データを読み込むたびに行うのは、ちょっと面倒です。


また、Phonetic関数という数式で表示してしまうと、ふりがなの修正が必要になると、これも、面倒な作業が発生します。


そこで、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


これで、C列にB列のデータのふりがなを表示することができます。


それでは、プログラム文を確認します。

お馴染みの変数宣言です。

Dim i As Integer

Dim lastrow As Long


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


変数のlastrowは繰り返し作業のために何回繰り返し作業をすればいいのかを、算出して設定しています。


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

B1から連なるデータにフリガナを設定しています。


Excelのふりがな情報は、Excelに直接入力しないと入力時文字情報は記録されません。

要するに、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)