【VBA入門】任意の文字列から自動でフリガナを取得する方法|GetPhonetic関数の使い方

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 を使えば、手入力することなく正確なフリガナを素早く取得できます。名簿作成やデータの読み上げ用ファイルの作成など、幅広く活用できる機能です。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

私が勉強したこと、実践したこと、してることを書いているブログです。
主に資産運用について書いていたのですが、
最近はプログラミングに興味があるので、今はそればっかりです。

目次