• ベストアンサー

エクセルのマクロでフリガナをつけるには

初歩的なことだと推測しますが、一つのセルに対してメニュー[書式]-[ふりがな]-[編集]でふりがなをつけられるのですが、一度にひとつの列の沢山の漢字の読みを追加するにはどうしたらいいでしょうか。 「新しいマクロの記録」でマクロに操作を記録しても結果が表示されるだけで繰り返し処理に応用できません。 下記の例 ActiveCell.FormulaR1C1 = "・・・" ActiveCell.Characters(1, 3).PhoneticCharacters = "・・・" ActiveCell.Offset(1, 0).Range("A1").Select

質問者が選んだベストアンサー

  • ベストアンサー
  • zap35
  • ベストアンサー率44% (1383/3079)
回答No.3

A1セルから下方向にフリガナを入れたい漢字(文字列)を入力し、右隣の列(B列)にはフリガナを入力しておきます。 A列  B列 伊藤 イフジ 佐藤 サフジ 高橋 タカキョウ 以下のマクロをALT+F11でVBE画面を開き、左上のVBA Projectでシート名を右クリックし「挿入」→「標準モジュール」で表示される画面に貼り付けて下さい。マクロの実行はALT+F8でマクロ一覧を開き、マクロ名を選択して「実行」ボタンです。実行後「書式」→「ふりがな」→「編集」で確認してみてください。 A1からではなく、別のセルから漢字(文字列)を入力している場合はマクロの3行目を、実際の開始セルに変更する必要があります Sub Macro() Dim rng As Range Const Start As String = "A1" '←フリガナを振る漢字の一番上のセル  For Each rng In Range(Range(Start), Cells(65536, Left(Start, 1)).End(xlUp))   rng.Phonetic.Text = rng.Offset(0, 1).Value  Next rng End Sub

tach_ei
質問者

お礼

ありがとうございます。 Sub Macro() Dim rng As Range Const Start As String = "A1" '←フリガナを振る漢字の一番上のセル For Each rng In Range(Range(Start), Cells(65536, Left(Start, 1)).End(xlUp)) rng.SetPhonetic rng.Phonetic.Text = Application.Phonetic(rng) Next rng End Sub 上記のように追加して実行できました。(PHONETICをキーワードにして調べました)

tach_ei
質問者

補足

実行してみましたが、結果は A列に漢字をセットしていますが、その同じA列に小さいカナではなく漢字の小さいルビが漢字の上部に表示されるだけですが、これは正しい実行結果でしょうか。

その他の回答 (2)

  • merlionXX
  • ベストアンサー率48% (1930/4007)
回答No.2

例えば、A列にある入力データにふりがなを表示させるのであれば、編集しなくとも Sub TEST01() ActiveSheet.Range("A:A").Phonetics.Visible = True End Sub で、いけるんじゃないでしょうか?

tach_ei
質問者

補足

Sub TEST01() ActiveSheet.Range("B2:B100").Phonetics.Visible = True End Sub で実行しましたが駄目です。

  • garouz
  • ベストアンサー率19% (178/917)
回答No.1

=phonetic() ではダメでしょうか?

tach_ei
質問者

補足

返答いただきありがとうございます。そのphonetic()ままですと、ふりがながない場合は漢字が表示されるだけです。

関連するQ&A