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 をつかうことで、対応することができます。