エクセルで入力された漢字のふりがなを抽出してくれる PHONETIC関数はとても便利なのですが、時として、「漢字のままでふりがなが表示されない!」という問題に出くわすことがあります。
原因と対処法を説明しますね。
PHONETIC関数を挿入したのに漢字のままでふりがなが表示されない原因
エクセルの「ふりがな機能」とは~そもそも論
そもそも、エクセルの[ホーム]タブの[フォント]欄にある[ふりがなの表示/非表示]でふりがなが表示されるのは、下記2つのケースです。
- エクセルに直接入力したセル内の文字列
- 他のファイルからコピーしたりインポートしたデータにエクセルでフリガナの編集を実行した文字列
エクセルに直接入力した文字列は、エクセル入力時の「かな」に基づいてふりがなが情報が記録されます。
他のファイルからコピーやインポートでエクセルのセルに入力された文字列は、エクセル入力時の「かな」データが存在しませんから、ふりがな情報自体が存在しません。
ただし、コピーやインポートでセルに入力された文字列に対して[ふりがなの編集]を適用すると、そのセルの文字列にはふりがなデータが付加されます。
PHONETIC関数でふりがなを抽出できない理由
言葉ではうまく説明できないなぁ。
下図を見てください。
エクセルが「ふりがな」情報を記録しているセルには、ふりがなが表示されています。
一方、エクセルが「ふりがな」情報を記録していないセルには、ふりがなは表示されません。
つまり、セル内の文字列が「ふりがな」情報を持っていないということです。
無い情報は表示できない…。
当然ですよね?
だから、PHONETIC関数を使ってふりがなを抽出しようとしてもセルに入力された文字列がそのまま表示されてしまうんですよ。
「PHONETIC関数を設定したのに漢字のまま!なぜ?」の原因はわかりましたね。
この問題を解決する方法はひとつ。
セルの文字列にふりがな情報を設定してあげることです。
で、そのやり方は2つ。
どちらのやり方を選ぶかは、あなた次第です(^^)
対処法その1:ひとつずつふりがなを設定する
ひとつめの対処法は、ふりがな情報がないセルに対して、ひとつずつふりがなを設定する方法です。
リボン内の「ふりがなの編集」を選択するか、キーボードショートカット alt + shift + ↑ でふりがなを設定し、enter 。
ふりがなを設定するセルの数が少なければこれでもいいですが、さすがに、ひとつずつは面倒くさいですよねぇ…。
対処法その2:VBAを使って選択範囲に一括でふりがなを設定する
VBAを使って選択した範囲に一括でふりがなを設定しましょう。
作業は2~3分くらいかな。リストが長い時はこのやり方の方が時間効率が良いと思います。
[開発]タブが表示されているかを確認する
まず、[開発]タブが表示されているかを確認してください。
[開発]タブが無い場合は、[ファイル] > [その他…] > [オプション] と進み、
[リボンのユーザ設定] を選択し、
[開発] にチェックを入れて、
[OK] 。
Visual Basicを起動する
[開発]タブを開き、Visual Basicを起動しましょう。
[挿入] > [標準モジュール] を選択します。
コードを入力する画面(下図)で、
Sub ふりがな と入力しenter を押します。
※ sub と ふりがなの間は半角スペースを空ける。
※ 本記事の例ではマクロの名前を”ふりがな”としました。わかりやすい任意の名前を付けましょう。
Sub ふりがな の後に半角 () が自動挿入され、1行スペースがあいて、End Sub と表示されるはずです。
1行空いたスペースに、Selection.SetPhonetic と入力しましょう。
ちなみに、この部分を和訳(?)すると、「選択範囲。設定する ふりがな」ってなカンジですね。
面倒なら、下記をコピーして貼り付けてね♪
Sub ふりがな() Selection.SetPhonetic End Sub
コードを入力したら、画面右上の×でvisual basicを閉じてください。
エクセルの画面に戻ります。
ふりがなを設定するセルを選択し、マクロを起動して一括処理!
いよいよ一括変換です。
ふりがなデータを追加するセルをまとめて選択し、リボン内のマクロをクリックしましょう。
マクロのダイアログが開くので、[実行]をクリック。
これだけ。
「ふりがなの表示」をしてみると…
選択したセルのすべてにふりがなが表示されました!
これで、PHONETIC関数を使ってふりがなを別のセルに抽出できます。
PHONETIC関数をセルに設定する手順は、こちらの記事をご覧ください。
以上 PHONETIC関数を使ってもふりがなを抽出できない、漢字しか表示されない問題の対処法でした。
ご参考になれば幸いです♪