エクセルについて質問です。あるセルに入力した漢字を1文字ずつに分けて別々のセルに表示させ(ここまではできます),その1字ずつに対応する読み仮名を隣のセルなどにそれぞれ表示させることは可能ですか?

エクセルについて質問です。あるセルに入力した漢字を1文字ずつに分けて別々のセルに表示させ(ここまではできます),その1字ずつに対応する読み仮名を隣のセルなどにそれぞれ表示させることは可能ですか? 具体的に言うと, A1に「質問」と入力したとき,A2に「しつもん」(読み仮名)と関数で表示します。 また,A3には「質」,A4には「問」のように,A1の内容を関数で1字ずつに分けて表示するようにします。(ここまではできます) ここで,A5に「しつ」,A6に「もん」のように,それぞれに対応する読み仮名を割り当てたいということです。 ご教授お願いします。マクロでもいいですが,関数でできればその方がありがたいです。

Excel40閲覧xmlns="http://www.w3.org/2000/svg">100

ベストアンサー

0

フリガナはユーザーが入力したプロセスをエクセルが記憶しておく機能です。 ですから質問と入力したのは記憶されますが数式で「質」を取り出した場合は変換の記録がないのでフリガナは表示されません。前もって「質」を入力しておけば大丈夫ですがやってられないですね。 よくあるパターンとしてフリガナを付ける機能はありますが数式ではなくShift+Alt+↑ キーを押す操作なので数式ではできません。 それと2文字熟語はほとんどが音読みですね。1文字にしてマクロでフリガナを設定しても訓読みになるのであまり期待できないです、というか絶望的ですね。 音読みと訓読みが一致していないと・・・・ Sub test() Dim rng1 As Range, rng2 As Range, rng3 As Range, r As Range Set rng1 = Range("A1", Cells(1, Columns.Count).End(xlToLeft)) Set rng2 = rng1.Offset(2).Resize(2) Set rng3 = rng1.Offset(4).Resize(2) rng1.Offset(1) = "=PHONETIC(A1)" rng2 = "=MID(A$1,ROW(A1),1)" rng2.Value = rng2.Value For Each r In rng2 r.SetPhonetic Next rng3 = "=PHONETIC(A3)" End Sub

画像

やはり方法は無さそうですね。 漢字の一字一字に割り当てる読みの文字数を別セルに22のように入力する方法で妥協しました。 ありがとうございました。

その他の回答(1件)

0

全自動とはいきませんが、A7に「ふりがなは何文字目で区切られるか」の数字を入力すれば可能です。 A1が「質問」ならA7に「2」を入力。 あとは A5に =Mid(A$2,1,A$7) A6に =Mid(A$2,A$7+1,Len(A$2)) 力不足でこれくらいの方法しか思いつきません。