ふりがなの設定

職場の電話帳が、Excelで作成されている。この電話帳を良くしようという、職場の改善活動にまつわるお話。

f:id:Infoment:20190913230942p:plain

電話帳をそのまま公開できるはずもなく、今回も毎度の「なんちゃって個人情報」のお世話になる。

さて、なんちゃって個人情報には、「なんちゃって人名」と「なんちゃってふりがな」が含まれている。
f:id:Infoment:20190913223626p:plain

この「ふりがな」は、左列の情報から抽出したものではなく、純然たる文字列だ。その証拠にPHONETIC関数をセットしても、フリガナではなく漢字が表示される。
f:id:Infoment:20190913224008g:plain

ところで、Excelのホームタブには「ふりがなの編集」があることを、皆さまご存じだろうか。
f:id:Infoment:20190913224142p:plain

私は知らなかった。なるほど、これは便利だ。
f:id:Infoment:20190913224309g:plain

しかし、一個ずつセットするのは面倒だ。そこで、マクロの記録で何をしているか確かめてみた。

Sub Macro1()
    Range("B3").Select
    ActiveCell.FormulaR1C1 = "武藤 莉緒"
    ActiveCell.Characters(1, 5).PhoneticCharacters = "ムトウ リオ"
End Sub

「ムトウ リオ」をどのようにして得るか知りたいのに、「ムトウ リオをセットします」という内容。これでは使い物にならない。
そこで、オブジェクトブラウザで探してみると、それっぽいものがあった。
f:id:Infoment:20190913225107p:plain

早速試してみよう。

Sub Hide_bu()
    Range(Range("B4"), Range("B4").End(xlDown)).SetPhonetic
End Sub

まとめて一気にセットすることができた。これは便利だ。
f:id:Infoment:20190913225301p:plain

ただ残念なことに、必ずしも正しいふりがながセットできるとは限らないようで。
f:id:Infoment:20190913225440p:plain

その場合は、正しい値を上書きする必要がある。

Sub Hide_bu()
    Range("B10").Phonetic.Text = "ミヤタ ミツノリ"
End Sub

幸いこの表には「なんちゃってふりがな」列が既に存在するため、この値をセットしてみよう。

Sub Abe_Shi()
    Dim r As Range
        For Each r In Range("B2:B51")
            r.Phonetic.Text = r.Offset(, 2)
        Next
End Sub

結果、正しいふりがなを「名前」列にセットすることが出来た。
f:id:Infoment:20190913230227p:plain

この手法は、どこからか名前だけコピーした名簿などで、フリガナ情報を追加したい場合に使えそうだ。

  1. 名前を張り付ける。
  2. SetPhoneticメソッドを用い、一括で暫定フリガナを得る。
  3. 暫定フリガナの内容確認(これは手作業。仕方ない)。
  4. 確認・修正した結果を返す。

違っているものだけ修正すればよいので、時間短縮が望めそうです。

参考まで。