Excelのセル内にある漢字のふりがなを一括表示&編集VBA/マクロ便利Tips

業務効率化に役立つVBA/マクロのさまざまなTipsをコード例を交えて紹介していきます。今回は、セルに漢字のふりがなを一括で表示するSetPhoneticメソッドや、セル内のふりがなを編集する際に使うPhoneticCharactersプロパティの使い方などについて。

» 2014年06月19日 18時00分 公開
[薬師寺国安PROJECT KySS]
「VBA/マクロ便利Tips」のインデックス

連載目次

※本Tipsの環境:Windows 8.1 Enterprize(64ビット)+Excel 2013


 今回は、セルにふりがなを設定するTipsを紹介しよう。

セルに漢字のふりがなを一括で表示するSetPhoneticメソッド

 氏名に、ふりがな(ルビ)を振ることは、個人情報を管理する場面などでは、特に必要な処理だ。漢字の「氏名」だけでは、何という呼び名なのか不明な場合も多々ある。そういった場合に、ふりがなを振っておくと便利だ。

 ふりがなを振るには、SetPhoneticメソッドを使う。

SetPhoneticメソッドの書式

{オブジェクト}.SetPhonetic


 {オブジェクト}には対象となるRangeオブジェクトを指定する。SetPhoneticメソッドで、指定された範囲内の全てのセルに一括で、ふりがなを表示する。

 E3からE4に氏名が入力されている図1のような表があったとしよう。この氏名にSetPhoneticメソッドを使ってふりがなを振ってみる。

図1 E3からE4に氏名が入力されている

 リスト1はふりがなを振るコードだ。

Sub 氏名にふりがなを振る()
  Range("E2:E4").SetPhonetic
  Range("E2:E4").Phonetics.Visible = True
End Sub
リスト1 氏名にふりがなを振るコード

 E2からE4のセルに入力されている氏名にSetPhoneticメソッドでふりがなを振り、「Phonetics.Visible=True」でふりがなを表示させている。

 このふりがなにはキーボードから入力した漢字変換前の「読み」が設定されるため、コピーした文字やマクロから入力した文字にはふりがなが適用されないので注意してほしい。

 実行すると、図2のように表示される。

図2 氏名にふりがなが振られた

PhoneticCharactersプロパティでセル内のふりがなを編集する

 次に、例えば図3のように「山田歩」の読みに「ヤマダ フ」とふりがなが振られているのを、「ヤマダ アユム」というふりがなにしたい場合は、下記の書式を用いる。

図3 「山田歩」に「ヤマダ フ」とふりがなが振られている

PhoneticCharactersプロパティの書式

{オブジェクト}.Characters({Start},{Length}).PhoneticCharacters


 {オブジェクト}にはRangeオブジェクトを使用する。CharactersプロパティはRangeオブジェクトの文字列内の文字の範囲を表す。{Start}には指定文字の開始位置を指定、{Length}には参照する文字数を指定する。

 リスト2は「山田歩」に「ヤマダ アユム」と指定するコードだ。

Sub ふりがなを指定して表示()
  Range("E5").Characters(1, 3).PhoneticCharacters = "ヤマダ       アユム"
End Sub
リスト2 ふりがなを指定して表示するコード

 E5の「山田歩」に「ヤマダ アユム」というふりがなが振られる。書式の{Start}の部分には1文字目からの「1」を指定し、{Length}の部分には、「山田歩」で3文字なので「3」を指定している。

 実行すると、図4のように表示される。

図4 指定したふりがなが振られた

著者プロフィール

薬師寺 国安(やくしじ くにやす) / 薬師寺国安事務所

薬師寺国安事務所代表。Visual Basicプログラミングと、マイクロソフト系の技術をテーマとした、書籍や記事の執筆を行う。

1950年生まれ。事務系のサラリーマンだった40歳から趣味でプログラミングを始め、1996年より独学でActiveXに取り組む。

1997年に薬師寺聖とコラボレーション・ユニット「PROJECT KySS」を結成。

2003年よりフリーになり、PROJECT KySSの活動に本格的に参加。.NETやRIAに関する書籍や記事を多数執筆する傍ら、受託案件のプログラミングも手掛ける。

Windows Phoneアプリ開発を経て、現在はWindowsストアアプリを多数公開中。

Microsoft MVP for Development Platforms - Client App Dev(Oct 2003-Sep 2012)。

Microsoft MVP for Development Platforms - Windows Phone Development(Oct 2012-Sep 2013)。

Microsoft MVP for Development Platforms - Client Development(Oct 2013-Sep 2014)。


Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。