こんにちは、Ryoです。
用途によってはかなり使用頻度の高いふりがな設定ですが、VBAを使っても行うことができます。今回はサンプルを使ってセルの文字列からふりがなの取得、取得したふりがなをひらがなや半角カタカナに置換、設定したふりがなを削除する方法について書いてみたいと思います。
1.サンプル概要
画像に示す簡単な表があるとして、先ずは「フリガナ」欄に全角カタカナで取得します。
≪実行前≫
≪実行後Sample1≫・・・全角カタカナ
次にひらがな、半角カタカナで取得した場合は以下の通りです。
≪実行後Sample2≫・・・ひらがな
≪実行後Sample3≫・・・半角カタカナ
≪実行後Sample4≫・・・セル上の文字にフリガナを設定
次にこれらのサンプルコードを以下に書いていきます。
2.サンプルコード
◆Sample1・・・全角カタカナの取得
Sub Sample1() Dim i As Integer For i = 2 To 6 'フリガナを全角カタカナで表示する Cells(i, 3) = Application.GetPhonetic(Cells(i, 2)) Next i End Sub
ふりがなを取得するにはGetPhoneticメソッドを使用します。
オブジェクト.GetPhonetic(文字列)
オブジェクトにはApplicationオブジェクトを指定しますので、サンプルのようにApplication.GetPhonetic(Cells(i, 2))という形で記述すればOKです。
後は取得したフリガナをC列の欄に書き込んでいきますので、For~Nextを使い処理を行っています。
◆Sample2・・・ひらがなの取得
Sub Sample2() Dim i As Integer For i = 2 To 6 'フリガナをひらがなで表示する Cells(i, 3) = StrConv(Application.GetPhonetic(Cells(i, 2)), vbHiragana) Next i End Sub
フリガナの取得自体はSample1と同様ですが、それをひらがなとする為にStrConv関数を使用します。Sample2ではひらがなにしますので、
StrConv(Application.GetPhonetic(Cells(i, 2)), vbHiragana)
このように記述することで、ひらがなを取得出来ます。
◆Sample3・・・半角カタカナの取得
Sub Sample3() Dim i As Integer For i = 2 To 6 'フリガナを半角カタカナで表示する Cells(i, 3) = StrConv(Application.GetPhonetic(Cells(i, 2)), vbNarrow) Next i End Sub
半角カタカナの場合も同様にStrConv関数を用いますが、この場合は以下のように指定します。
StrConv(Application.GetPhonetic(Cells(i, 2)), vbNarrow)
これで半角カタカナを取得出来ます。
◆Sample4・・・セル上の文字にフリガナを設定
Sub Sample4() 'セル上の文字にフリガナを設定する With Range(Cells(2, 2), Cells(6, 2)) .SetPhonetic .Phonetic.Visible = True End With End Sub
セル上の文字にフリガナを設定するにはSetPhoneticメソッドを使用します。
オブジェクト.SetPhonetic
このオブジェクトにはRangeオブジェクトを指定しますので、サンプルではフリガナ設定したい範囲を指定しています。そのSetPhoneticで設定したら.Phonetic.Visible = Trueとすることでフリガナを表示できます。
◆参考・・・文字列に設定したフリガナを削除(非表示)
おそらく書かずともおわかりかもしれませんが、上述の.Phonetic.Visible = TrueをFalseにするだけでOKです。
Sub Sample5() 'セルの文字に設定されたフリガナを削除する With Range(Cells(2, 2), Cells(6, 2)) .SetPhonetic .Phonetic.Visible = False End With End Sub
これを実行すればSample4で設定したフリガナを削除(非表示)することが出来ます。
3.まとめ
ここまで書きました通り、フリガナ設定や削除自体は特に難しいこともなく実行することが出来ます。ただセルに入力した際の文字の入力によっては正しく表示されないこともあるようなので、実行したら表示内容は確認した方が良いかと思います。
Excelで扱うデータによっては方法をしっておくと有用なことも多いかと思いますので、機会があればぜひご検討くださいませ!
以上が文字列にふりがな(ひらがな/カタカナ)を表示する方法についてでした!
今回の記事が何かの参考になれば幸いです。
Ryo