- ベストアンサー
アルファベットにフリガナ
WORDかEXCELで、アルファベットや数字にフリガナを振る方法をご教示ください。 L → エル O → オー 0 → ゼロ 1 → イチ などです。
- みんなの回答 (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
その他の回答 (1)
- hirumin
- ベストアンサー率29% (705/2376)
Wordであれば、書式に「ルビ」 Excelであれば、書式に「ふりがな」 があると思います。こちらを利用しましょう。
お礼
質問が曖昧でした。 自動でフリガナをふることができれば という意味でした。
お礼
ありがとうございます。 助かりました。