• ベストアンサー

アルファベットにフリガナ

WORDかEXCELで、アルファベットや数字にフリガナを振る方法をご教示ください。 L → エル O → オー 0 → ゼロ 1 → イチ などです。

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

  • ベストアンサー
  • KenKen_SP
  • ベストアンサー率62% (785/1258)
回答No.2

単語単位での読み仮名でしたら、EXCELやWORDでは手作業でやるしかありません。 文字単位でいいですか?例えば、EXCEL という語なら × エクセル ○ イー エックス シー イー エル ならVBAで出来ますが。 読み仮名をふるセル範囲を選択し、下記マクロを実行します。ちなみに数字の場合には、先に文字列にしておく必要があります。完了したら、EXCELのPHONETIC関数で読み仮名を表示できます。 Sub 英数字フリガナ()      Dim strTarget$, strYomi$, strTmp$, Buf$   Dim rngCurrent   As Range   Dim aryYomi(35, 1) As String   Dim tmp   Dim i As Long, j  As Long      strTarget = "0123456789abcdefghijklmnopqrstuvwxyz"   strYomi = "ゼロ,イチ,ニ,サン,ヨン,ゴ,ロク,ナナ,ハチ,キュウ,"   strYomi = strYomi & "エイ,ビー,シー,ディ,イー,エフ,ジー,エイチ,アイ,ジェイ,"   strYomi = strYomi & "ケイ,エル,エム,エヌ,オウ,ピー,キュウ,アール,エス,ティ,"   strYomi = strYomi & "ユウ,ブイ,ダブリュ,エックス,ワイ,ゼット"   tmp = Split(strYomi, ",")   For i = 1 To 36     aryYomi(i - 1, 0) = Mid(strTarget, i, 1)     aryYomi(i - 1, 1) = tmp(i - 1)   Next i   For Each rngCurrent In Selection     If Not IsEmpty(rngCurrent) Then       Buf = CStr(Trim(rngCurrent.Value))       Buf = StrConv(Buf, vbNarrow)       Buf = StrConv(Buf, vbLowerCase)       strYomi = ""       For i = 1 To Len(Buf)         strTmp = Mid(Buf, i, 1)         For j = 1 To 36           If strTmp = aryYomi(j - 1, 0) Then             strYomi = strYomi & aryYomi(j - 1, 1) & " "             Exit For           End If         Next j       Next i       rngCurrent.Characters.PhoneticCharacters = Trim(strYomi)     End If   Next rngCurrent End Sub

hondarara
質問者

お礼

ありがとうございます。 助かりました。

その他の回答 (1)

  • hirumin
  • ベストアンサー率29% (705/2376)
回答No.1

Wordであれば、書式に「ルビ」 Excelであれば、書式に「ふりがな」 があると思います。こちらを利用しましょう。

hondarara
質問者

お礼

質問が曖昧でした。 自動でフリガナをふることができれば という意味でした。

関連するQ&A