- ベストアンサー
EXCELでふりがなの編集について
EXCEL2003を使っています。 ふりがなの編集について質問させていただきます。 元々ふりがな情報を持たないデータに、VBAでふりがな表示させたのですが、編集が必要になりました。 編集に関しては1件ずつ手作業で行なわなくてはいけないでしょうか?または、ふりがな表示させる時に、読みをあらかじめ指定しておいて、ふりがな表示をさせることはできるのでしょうか? 宜しくお願い致します。
- みんなの回答 (5)
- 専門家の回答
質問者が選んだベストアンサー
#4です。人間がみて、事実に照らして、間違い分のフリガナの入力は、人手で(私の言う)B1に入力せざるを得ないでしょう。B1(B列)に入力がなければ、現在のフリガナを修正しないようにプログラムを修正してはどうでしょう。垂水をタルミズかタルミかはコンピュタプログラムで は判断は難しい。漢字変換辞書を自由(事実辞書に出る)気がする。 それと現在のフリガナは入力者が誤ったにしろ、漢字変換時にそう言う読みを使ったことは間違いないのです。
その他の回答 (4)
- imogasi
- ベストアンサー率27% (4737/17069)
VBAでフリガナは Sub tst01() Range("E1").Characters.PhoneticCharacters = Range("B1") Range("E1").SetPhonetic Range("E1").Phonetics.Visible = True End Sub の3段階(データソース、設定、表示)に分かれています。 >元々ふりがな情報を持たないデータに そのために第1段階がいります。 >編集が必要になりました。編集に関しては1件ずつ手作業で行なわなくてはいけないでしょうか ものによるのではないですか。どんな編集? >ふりがな表示させる時に、読みをあらかじめ指定しておいて、ふりがな表示をさせることはできるのでしょうか? 上記第1段階です。B1に読みガナを入力し、漢字がE1の場合の例です。
補足
回答ありがとうございます。 ふりがなの編集についてですが、例えば「垂水」という単語ですが、本来なら「たるみ」というふりがなですが「たるみず」と表示されてしまいます。これを修正したいのです。 imogasiさんの回答を読ませていただいていたら、第一段階の方法を応用したらできるような気もしてきました。間違っているかもしれませんが、ifかCaseで条件分岐させて、「垂水」であれば Range("E1").Characters.PhoneticCharacters = "たるみ"でふりがなをふり、データ最終行までLoopさせる・・・とか。今日早速職場で試してみます!
- KenKen_SP
- ベストアンサー率62% (785/1258)
下記のマクロはNo.2をコーディングしたものです。 実際にNo.2の手順3まで行って下さい。 フリガナをふりたいデータはA列、ただしいフリガナはB列にあるとして。 (実際にはデータの1列横ですから、B列とC列などでもOK) 1. A列にあるデータを範囲選択します(複数列の選択はNG) 2. 下記マクロを実行 これで、良いかと。 これ以上の自動化は不可能ですので、ご了承くださいね。 あくまでも、手作業の負担をできる限り軽減するためです。 '1列横に用意してあるフリガナを割当 Sub SetKana2() On Error GoTo ErrorHandler Dim Rng As Range If Selection.Columns.Count > 1 Then MsgBox "複数列の選択には対応できません.", vbCritical GoTo ExitHandler End If Application.ScreenUpdating = False For Each Rng In Selection '次行の.Offset(0,1)は1行横のという意味です。 Rng.Characters.PhoneticCharacters = Trim(Rng.Offset(0, 1).Value) Next MsgBox "フリガナを設定しました。", vbInformation ExitHandler: Application.ScreenUpdating = True Exit Sub ErrorHandler: Resume ExitHandler End Sub
お礼
ご丁寧に回答をいただきましてありがとうございました。なるほど、こういう書き方ができるんですね。大変勉強になりました。ありがとうございました。
- KenKen_SP
- ベストアンサー率62% (785/1258)
>ふりがなが完全でない場合、編集は手作業なんでしょうか? このマクロでは、それが限界です。 >読みをあらかじめ指定しておいて、ふりがな表示をさせる A列のデータにB列のフリガナをセットする場合の手法です。 (手順1) 先ほどのマクロで、ある程度フリガナを設定します。 (手順2) A1セルのフリガナをB1に表示させるには、関数PHONETICを使います。 B1のセルに、=PHONETIC(A1) とすれば、B1にフリガナが表示されます。 あとは、オートフィルで最終行まで関数をコピーします。 (手順3) 手順2で得られたフリガナをコピーして、値として貼付け、フリガナを正しく編集。 (手順4) ActiveCell.Characters.PhoneticCharacters = "フリガナ" これは、現在選択されているセルに”フリガナ”というフリガナをセットするマクロです。このコードを参考に、B1セルにある正しいフリガナをA1セルにセットするマクロを作成します。 例えば、 Range("A1").Characters.PhoneticCharacters = Range("B1").value とか。あとは、最終行までループするだけです。
- KenKen_SP
- ベストアンサー率62% (785/1258)
こんにちは。 EXCELでは、コピー&ペーストしたデータはフリガナの情報をもっていません。 マクロで強制的にフリガナをふる場合、SetPhonetic を使用します。 以下サンプルです。 フリガナを強制的にふるセルを選択した状態で、マクロを実行します。 'フリガナを強制割当 Sub SetKana() On Error GoTo ErrorHandler Dim Rng As Range Application.ScreenUpdating = False For Each Rng In Selection Rng.SetPhonetic Next MsgBox "フリガナの強制割当を完了しました。" & Chr(13) & _ "完全ではない場合がありますので、確認願います。" ExitHandler: Application.ScreenUpdating = True Exit Sub ErrorHandler: Resume ExitHandler End Sub
補足
ふりがなが完全でない場合、編集は手作業なんでしょうか?
お礼
なるほど、そうですね。動作確認しましたら、imogasiさんのアドバイスいただいた方法でうまくいきました。本当にありがとうございました。大変勉強になりました。