Excel VBA 3行マクロ~21回 フリガナを自動でつけるマクロ

フリガナを自動でつけるマクロ

フリガナを自動でつける

3行マクロ 21回

フリガナを自動でつけるマクロ

フリガナを自動でつけるマクロって必要なの?と思うかもしれません。
フリガナを表示させたいセルを右クリックして、 メニューからふりがなの表示を選択すればフリガナが表示されますから。
でもそれは、入力した時の読みをExcelが記憶しているからで、データをテキストファイルで受けっとった場合など、それをそのまま利用しても、フリガナは表示されません。
今回作成するマクロは、Excelのフリガナ機能が働かない場合に、マクロで振り仮名を表示させようということなのです。
(サンプルファイルは、こちらから 3行マクロ21回サンプルデータ
Excelバージョン:Excel2016201320102007

振り仮名が表示されない場合

振り仮名を表示させるには、右クリックから振り仮名の表示を選択しますが・・・
振り仮名を表示
この表は、データを他のアプリケーションから持ってきたので、振り仮名が表示されません。このような時に、マクロで振り仮名を表示できたら便利ですね。
振り仮名が表示されない

マクロで振り仮名を表示させる

マクロで振り仮名を表示させると言っても、残念ながらマクロの記録では作れません。
VBEを起動してコードを入力します。
振り仮名1
VBEを起動したら、左側からVBEProject(PERSONAL.XLS)を選びます。すでにある標準モジュールに追記してもいいですし、挿入メニューから「標準モジュール」を選択してあたらしい標準モジュールに記載してもかまいません。
振り仮名2
Sub 振り仮名を自動でつける
とマクロの名前を書いて、その後に、()を付けます。
すると、End Sub が自動的に記入されます。
振り仮名3
間に次のようにコードを記載します。
Sub 振り仮名を自動でつける()
    Selection.SetPhonetic
End Sub
これだけです。
選択範囲に振り仮名をつけるという意味になります。
先ほどの、振り仮名の表示されない表で確認しましょう。マクロを表示させて、振り仮名を自動でつけるマクロを選択し、実行をクリック。
マクロを実行
自動で振り仮名が入力されました。 ただし、Excelのおすすめ振り仮名ですから、読みが違う場合もあります。確認が必要です。
振り仮名を自動でつけるマクロ
こちらは、右クリックメニューからの[振り仮名を表示]をコードに入れています。
' 予め範囲を選択しておきます。
Sub 振り仮名を自動でつける()
    Selection.SetPhonetic
    Selection.Phonetics.Visible = True
End Sub
With ~ End Withステートメントを使う場合
' 予め範囲を選択しておきます。 
Sub 振り仮名を自動でつける2()
    With Selection     
      .SetPhonetic                
      .Phonetics.Visible = True 
    End With
End Sub
    

別セルにフリガナだけ取り出したい時

別セルにフリガナだけ取り出したい時には、Offsetプロパティを利用します。
指定された範囲からオフセットした範囲のオブジェクトを表すので、以下の場合には、左隣のフリガナが設定されているセルということになります。
セル.Value = セル.Offset(0, -1).Phonetic.Text

振り仮名を自動でつけるマクロ
' 予めフリガナを取り出したいセル範囲を選択しておきます。以下のコードの場合はC列
Sub セルのフリガナを別セルに表示する() Dim セル As Range For Each セル In Selection セル.Value = セル.Offset(0, -1).Phonetic.Text Next End Sub

今日の講義は以上です。お疲れ様でした。

こちらもおすすめ