皆さんこんにちは。Excel作業で「氏名」を入力した後、名簿作成などのためにわざわざ手入力でふりがなを振っていませんか?Excelには「PHONETIC関数」がありますが、実はこれ、データが手入力されたものなら良いものの、他システムからのCSV出力データだと正しく表示されないことが多々あります。今回は、実務で絶対に役立つ「VBAを使った確実なふりがな取得法」を解説します。
なぜPHONETIC関数だけでは不十分なのか
PHONETIC関数は「セルに入力された際の読み」を保持している場合のみ機能します。CSVファイルをExcelで開いた場合や、コピー&ペーストで貼り付けたデータには、この「読みの情報」が欠落していることが多く、結果として元の漢字がそのまま表示されてしまうのです。実務の現場で「関数を入れたのに全部漢字のままだ」と頭を抱えた経験がある方も多いのではないでしょうか。
VBAで「ふりがな」を強制的に付与する
VBAを使えば、Excelの持つ「ふりがな情報(Phoneticオブジェクト)」を強制的に呼び出すか、あるいは「Microsoft IME」の辞書を参照して読みを当てることが可能です。以下のコードは、選択した範囲のセルに対して、ふりがなを自動付与する実務特化型のマクロです。
Sub AddFuriganaToSelection()
Dim cell As Range
For Each cell In Selection
If cell.Value <> "" Then
' セルのふりがなを有効にする
cell.Characters.PhoneticCharacters = Application.GetPhonetic(cell.Value)
' 隣のセルにふりがなを出力する例
cell.Offset(0, 1).Value = Application.GetPhonetic(cell.Value)
End If
Next cell
End Sub
実務での活用ポイント
このマクロの最大の利点は、大量のデータに対する一括処理ができる点です。例えば、顧客管理システムからダウンロードした数千件の氏名データに対し、ボタン一つで「ふりがな列」を生成できます。
また、もう一つのコツとして、ふりがなが誤変換されている場合は、手動で修正した後に Range.Phonetic.Text を参照することで、より精度の高い名簿が作成できます。
講師からのアドバイス
実務において「正確さ」は命です。VBAでふりがなを振った後は、必ず「カタカナ」に変換する処理を加えてください。PHONETIC関数で取得したふりがなは全角ひらがなで出力されることが多いため、StrConv関数を使ってカタカナ統一をしておくと、ソート(並び替え)や検索が格段にスムーズになります。
地味な作業ですが、手入力をゼロにすることで、皆さんの貴重な時間をよりクリエイティブな業務に充ててくださいね。それでは、次回の講義でお会いしましょう。
