Excelでは、日本語で入力された文字列に対して、自動的にフリガナ(Phonetics)が付加されることがあります。
しかし、印刷時の見栄えを整えたい場合や、他システムへのデータ転送時に不要なフリガナを含めたくないケースも多々あります。
本記事では、VBAを使ってセル範囲のフリガナ情報を一括で削除する方法をご紹介いたします。
目次
フリガナ情報の削除とは?
Excelのセルには、「表示上は見えない」ふりがな情報が内部的に付加されていることがあります。
これは主に、PHONETIC
関数や音声読み上げ、名簿処理などで使用されます。
VBAでこの情報だけをクリアするには、セルの「値」だけを再代入することで可能です。
フリガナを一括削除するVBAコード
以下のコードでは、表形式のデータが存在する領域(A1 を起点とする CurrentRegion)に対して、値だけを再代入することで、フリガナ情報を削除します。
Sub フリガナ削除処理()
Dim データ範囲 As Range
Set データ範囲 = Range("B3").CurrentRegion
' フリガナ情報をクリア(値だけを再代入)
データ範囲.Value = データ範囲.Value
End Sub
処理内容の解説
Range("B3").CurrentRegion
:B3セルを含む表全体を自動認識して範囲指定.Value = .Value
:数式や書式などを除き、「純粋な表示値」のみをセルに残す- 結果的に
Phonetics
(フリガナ)プロパティが削除される
使用前後のイメージ
氏名 | フリガナ(内部) |
---|---|
森 林男 | モリ ハヤシオ |
高橋 太郎 | タカハシ タロウ |
→ 処理後には、表示上は変わりませんが、フリガナ情報がなくなります。
注意点
- 書式、コメント、数式、結合セルなどの「値以外」の情報は失われるため、必要に応じてバックアップを推奨します。
- 数式セルにこの処理を適用すると、数式が消え、値だけが残ることに注意してください。
まとめ
処理内容 | コード例 |
---|---|
フリガナを削除 | セル範囲.Value = セル範囲.Value |
範囲の自動取得 | Range("B3").CurrentRegion |
注意点 | 数式や書式が消えるため、バックアップ必須 |
Excel VBAでは .Phonetics.Delete
のような直接的な削除メソッドが存在しないため、値の再代入によるクリア処理が唯一の実用的な方法です。
日常的に名簿や文字列データを扱う場面では、意外と重宝する処理ですので、ぜひ活用してみてください。