Categories: VBA基礎

EXCEL VBA セルのふりがな情報を表示(ふりがな一括表示・ふりがな自動作成・ふりがな情報の修正)「Phonetics・SetPhonetic・Application.GetPhonetic(text)」

 

EXCEL VBA セルのふりがな情報を表示(ふりがな一括表示・ふりがな自動作成・ふりがな情報の修正)

 

 

●はじめに
EXCEL等で名前や住所などの一覧表を作成すると思いますが、その時一緒に「ふりがな」情報も別の列に一覧表として作成すると思います。セルに入力した漢字は、文字ごとに「ふりがな」情報をデータとして格納されます。「Phonetics」メゾットを使うと、同じセル内(上部)に「ふりがな」を表示する事が出来ます。
ただし、直接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で書籍名データを入力しています。(ふりがなデータを持っています)

 

 

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

 

 

●実行前~実行後 ※プログラム実行後、B列の書籍名に「ふりがな」が表示されました。その後、B列の書籍名の「ふりがな」を非表示に切り替えました。
(画面クリックして拡大)

 

 

 

 

ふりがな情報を自動生成させる 『SetPhonetic』

 

 

 ●プログラム説明 (サンプルプログラム②)
(画面クリックして拡大)

下記のプログラムは、下表のB列『住所』に入力されている住所データからC列に住所の「ふりがな」情報を自動生成し、セルに表示させるプログラムです。

※下表のデータの『住所』データは、ふりがなデータを持っていません。

 

 

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

 

 

●実行前~実行後 ※プログラム実行後、B列の住所を元に、C列に住所の「ふりがな」が表示されました。
(画面クリックして拡大)

 

 

 

ふりがな情報の取得(自動生成)及び訂正(ふりがな候補) 『Application.GetPhonetic(text)』

 

 

●プログラム説明 (サンプルプログラム③)
(画面クリックして拡大)

下記のプログラムは、下表のB列に『名前』のデータが入力されています。その名前のデータをC列に「フリガナ情報」を自動作成するプログラムです。ただ、『Application.GetPhonetic(text)』を利用して「ふりがな候補」を次々に、「ふりがなの候補データ」として表示させます。条件式で、正しいふりがなに一致したら、C列に「名前のふフリガナ」として代入されます。なお、ふりがなの候補すべて合わない場合は、手入力にて「ふりがな」を入力します。

※下表のデータの『住所』データは、ふりがなデータを持っていません。


※下記の簡易フローチャートは、下記プログラムのフローチャートをイメージして作成しております。

 

 

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

 

 

●実行前~実行後 ※プログラム実行後、B列の「名前」から自動生成された「ふりがな」を一件ずつ確認して、自動生成される「ふりがな候補」を確認しつつ全員の「名前フリガナ」を作成しました。このような、サンプルプログラムを利用して、名前一覧表などの「ふりがな:データを効率よく作成(入力)してください。
(画面クリックして拡大)

 

 

 

最後まで、ご覧いただきまして誠に有難うございました。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。

 

 

AKIRA