EXCEL VBA セルのふりがな情報を表示(ふりがな一括表示・ふりがな自動作成・ふりがな情報の修正)「Phonetics・SetPhonetic・Application.GetPhonetic(text)」
EXCEL VBA セルのふりがな情報を表示(ふりがな一括表示・ふりがな自動作成・ふりがな情報の修正)
ただし、直接EXCELに入力したデータは、「ふりがな」データが格納されていますが、他のデータベースや他のアプリケーションソフトから文字列データをインポートした場合などは、「ふりがな」情報は、データに格納されないので、「SetPhonetic」メゾットを使い、ふりがな情報を自動生成する事が出来ます。
なお、自動生成したふりがな情報は「Application.GetPhonetic(text)」を使い、複数ある「ふりがな情報」の候補を順番に表示する事ができます。このような、機能を利用してデータ作成を行う事で、効率的にデータを作成する事が出来ます。それでは、順番に「Phonetics」・「SetPhonetic」・「Application.GetPhonetic(text)」の利用方法を順番に説明いたします。
〇『ふりがな情報を表示:Phonetics 』
オブジェクト.Phonetics.Visible = True / False
①フリガナを表示する(例)・・・・・・ Range(“A1”).Phonetics.Visible = True
②フリガナを非表示にする(例)・・ ・・ Range(“A1”).Phonetics.Visible = False
〇『ふりがな情報を自動生成:SetPhonetic 』
※ふりがな情報を持たないデータに対して自動生成
オフジェクト.SetPhonetic
〇フリガナの自動生成(例)・・・・・・Range(“A1”).SetPhonetic
〇『ふりがな情報候補を順番に表示:Application.GetPhonetic(text) 』
Application.GetPhonetic(text)
〇フリガナ情報候補の表示(例)・・・・ Furigana = Application.GetPhonetic(text) ’1つ目のフリガナ候補を代入:Textは、文字列やセル番地を指定
Furigana = Application.GetPhonetic() ’2つ目以降のフリガナ候補を代入
※GetPhonetic(text)で一度、フリガナ情報を取り込むと、2回目以降は、GetPhonetic()でフリガナ候補があるまで、値を返します。ただし、フリガナ候補が無くなると「””」を返します。
ふりがな情報を表示させる 『Phonetics.Visible』
(画面クリックして拡大)
下記のプログラムは、下表のB列『書籍名』に入力されている文字列データから「ふりがな」情報をセルに表示させるプログラムです。
※下表のデータは、EXCELで書籍名データを入力しています。(ふりがなデータを持っています)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
Sub Phonetics01() Dim lRow As Long lRow = Cells(Rows.Count, "B").End(xlUp).Row 'B列の最終行を取得します。 Range("B2:B" & lRow).Phonetic.Visible = True '指定したセル(B列:B2~B15)のふりがなを表示させます。 MsgBox "『ふりがな』を表示しました。" Range("B2:B" & lRow).Phonetic.Visible = False '指定したセル(B列:B2~B15)のふりがなを表示させます。 MsgBox "『ふりがな』を非表示にしました。" End Sub |
(画面クリックして拡大)
ふりがな情報を自動生成させる 『SetPhonetic』
(画面クリックして拡大)
下記のプログラムは、下表のB列『住所』に入力されている住所データからC列に住所の「ふりがな」情報を自動生成し、セルに表示させるプログラムです。
※下表のデータの『住所』データは、ふりがなデータを持っていません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
Sub GetPhonetic01() '住所から「ふりがな」へ変換 Dim lRow, I As Long lRow = Cells(Rows.Count, "B").End(xlUp).Row 'B列の最終行を取得します。 For I = 2 To lRow '2行目から最終行まで Range("C" & I) = Application.GetPhonetic(Range("B" & I)) 'B列の住所からC列にフリガナを作成します。 Next I MsgBox "全ての住所データを「ふりがな」に変換しました。" End Sub |
(画面クリックして拡大)
ふりがな情報の取得(自動生成)及び訂正(ふりがな候補) 『Application.GetPhonetic(text)』
(画面クリックして拡大)
下記のプログラムは、下表のB列に『名前』のデータが入力されています。その名前のデータをC列に「フリガナ情報」を自動作成するプログラムです。ただ、『Application.GetPhonetic(text)』を利用して「ふりがな候補」を次々に、「ふりがなの候補データ」として表示させます。条件式で、正しいふりがなに一致したら、C列に「名前のふフリガナ」として代入されます。なお、ふりがなの候補すべて合わない場合は、手入力にて「ふりがな」を入力します。
※下表のデータの『住所』データは、ふりがなデータを持っていません。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
Sub GetPhonetic02() '名前をカナ文字訂正 Dim lRow, I As Long Dim Kana As String lRow = Cells(Rows.Count, "B").End(xlUp).Row 'B列の最終行を取得します。 For I = 2 To lRow '2行目から最終行まで・・・① Kana = Application.GetPhonetic(Range("B" & I)) 'B列の指名からフリガナを作成します。・・・② Do While Kana <> "" 'ふりがなの次候補が無くなるまで繰り返します。・・・③ If MsgBox("この名前『" & Range("B" & I) & "』の『ふりがな』は、" & Kana, vbYesNo) = vbYes Then 'フリガナ情報が合っているか・・・④ Range("C" & I) = Kana 'セルにフリガナ情報を登録します。・・・⑥ Exit Do End If Kana = Application.GetPhonetic() 'カナ文字の次候補を繰り返す。 Loop If Kana = "" Then 'カナ文字候補かない場合は、実際に手入力します。 Kana = InputBox("正しいフリガナを入力してください")・・・・⑤ Range("C" & I) = Kana 'セルにフリガナ情報を登録します。・・・⑥ End If Next I End Sub |
(画面クリックして拡大)
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。