ふりがなの自動入力

住所を入力すると、「ふりがな」が自動表示されるサンプルです。但し、その「ふりがな」のセルに計算式を入れたのでは「ふりがな」の修正ができないので、簡単なイベントマクロを併用します。

ふりがなの一括入力

住所録などの一覧表に一括してふりがなを登録したい場合、その一覧がCSV形式テキストファイルなどから取り込まれたものだと「PHONETIC関数」をふりがな列にセットしただけでは「ふりがな」になってくれません。
PHONETIC関数」をセットしても「漢字」のままになってしまいます。

(画像をクリックすると、このページのサンプルがダウンロードできます)
サンプルなので、仮にA列が「住所」、B列が「ヨミガナ」としてあり、B列にこのように「PHONETIC関数」をセットした状態です。 ですが、このように「ふりがな」の列も「漢字」のままになってしまいます。
これは、外部からデータがCSV形式テキストファイルで持ち込まれたとか、メモ帳などで作成された文字列情報からコピーして貼り付けられたとかで、 セル上で実際に編集(入力)された情報でない場合に発生する現象です。

では、ダメなのかというとそうでもなく、

漢字住所のセルを選択した状態から「ホーム」タブから「ふりがなの編集」と選ぶと、

このように漢字住所のセルに「ふりがな」が表示されます。ここからEnterキーを2回押して決定させると、

「ヨミガナ」列にふりがなが表示されます。

解りやすいようにメニューから操作しましたが、「AltShift+↑」でも同様の機能が得られますから繰り返し行なうには多少便利でしょう。 でも、数百、数千行も「AltShift+↑」「Enter」「Enter」を手作業で繰り返すのは大変です。
そこでマクロを使ってみました。上記のキー操作を自動的に繰り返させるというものです。
サンプルにはマクロを作成して組み込んであるので、起動させてみましょう。

「開発」タブから「マクロ」を選択(AltF8でも良い)します。

作成したマクロ(ここでは「TEST」)を選択して「実行」をクリックします。
すると、どうでしょうか。

このように順次一括して変換してくれるので、全行のふりがなが表示されます。
表示されるふりがなはおそらくIMEから取得した情報だと思いますが、セル上で手入力する場合と違って全てが正しいとは限りません。 このサンプルでも音読み、訓読み等のおかしなものがあるようです。

マクロのコードはこの程度のものです。

Option Explicit
' このマクロの定数(状況により変更する)
Const g_cnsCOL As String = "A"          ' 漢字住所の列
Const g_cnsMIDASHI As Long = 1          ' 見出し行数

' 漢字住所の列でAlt+Shift+↑を連続して入力していくマクロ
Sub TEST()
    Dim lngRow As Long                  ' 行INDEX
    ' 先頭行から最終行まで繰り返す
    For lngRow = g_cnsMIDASHI + 1 To Range(g_cnsCOL & Rows.Count).End(xlUp).Row
        ' 現在行を選択
        Range(g_cnsCOL & CStr(lngRow)).Select
        ' 現在行に漢字住所があるか
        If ActiveCell.Value <> "" Then
            ' セルに値があればAlt+Shift+↑とEnterを入力
            SendKeys ("+%{UP}")
            SendKeys ("{ENTER}")
        End If
    Next
    ' 先頭行を選択
    Range(g_cnsCOL & CStr(g_cnsMIDASHI + 1)).Select
End Sub
一応、セルが空(住所なし)だと1行余分に進んでしまうので判断を入れていますが、このサンプルのように全て埋まっている場合は判断記述はなくても良いです。 住所列と見出し行数を一番先頭のモジュールレベルで定数宣言しているので、これを変更するだけでも利用できるかも知れません。

Excel2000以降のバージョンであれば、もっと簡単な「SetPhonetic関数」が使えます。

Option Explicit

' SetPhonetic関数を使う(選択範囲が処理対象なので注意!)
Sub TEST2()
    Selection.SetPhonetic
End Sub
このマクロだけで選択範囲が一気に処理できます。このページのサンプルであればA列の漢字文字列があるセル範囲全体を選択してからマクロ「TEST2」を動かしてみて下さい。
「選択範囲(Selection)」が処理対象なので起動時に注意が必要ですが、逆にはこのマクロだけ持っていればどこでも利用できます。ここは「計算式」の説明だったのでマクロを取り上げる場所ではないのですが「PHONETIC関数」を機能させるためにこのような簡単なマクロを貼り付けて利用するくらいはチャレンジしてみて下さい。