Excel VBAでは、日本語の文字列から自動的に「ふりがな(フリガナ)」を取得することが可能です。この記事では、Application.GetPhonetic
関数を使って、セルに入力された文字列から自動的にフリガナを判別・取得する方法をご紹介いたします。
目次
フリガナを取得する基本構文
Application.GetPhonetic(文字列)
この関数は、指定された文字列に対応するフリガナ(ひらがな)を返します。セルの表示に関わらず、文字列の読み仮名を自動的に解析し、返却される点が特徴です。
実際の使用例
以下は、A列に入力された氏名や地名などの日本語に対して、B列にフリガナを表示させる処理の例です。
Dim 対象セル As Range
For Each 対象セル In Range("A2:A6")
対象セル.Offset(0, 1).Value = Application.GetPhonetic(対象セル.Value)
Next
このコードでは、A2〜A6セルに入力された文字列のフリガナが、隣接するB列(B2〜B6)に表示されます。
使用例のイメージ
A列(元の文字列) | B列(取得されたフリガナ) |
---|---|
森 林太郎 | モリ ハヤシタロウ |
鈴木 一郎 | スズキ イチロウ |
※返却されるフリガナは、基本的に「全角カタカナ」で表示されます。
注意点
Application.GetPhonetic
は Windows の IME(入力システム)を利用してフリガナを判別しているため、精度は高いものの必ずしも100%正確とは限りません。- 英数字、記号、外国語などの文字列には正常に対応しない場合があります。
- 空白セルや数値に対して使用すると、空文字が返されます。
応用:表全体への処理
範囲が広がる場合でも、.CurrentRegion
を使うことで自動的に範囲を指定できます。
Dim 対象セル As Range
For Each 対象セル In Range("B2").CurrentRegion.Columns(1).Cells
対象セル.Offset(0, 1).Value = Application.GetPhonetic(対象セル.Value)
Next
このようにすることで、表の1列目全体に対して、2列目にフリガナを出力できます。
まとめ
処理内容 | コード例 |
---|---|
フリガナ取得 | Application.GetPhonetic(対象セル.Value) |
隣のセルに出力 | 対象セル.Offset(0, 1).Value = ... |
表全体に対応 | For Each ... In .CurrentRegion.Columns(1) |
Excel VBA を使えば、手入力することなく正確なフリガナを素早く取得できます。名簿作成やデータの読み上げ用ファイルの作成など、幅広く活用できる機能です。