重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

EXCEL2003を使っています。
ふりがなの編集について質問させていただきます。
元々ふりがな情報を持たないデータに、VBAでふりがな表示させたのですが、編集が必要になりました。
編集に関しては1件ずつ手作業で行なわなくてはいけないでしょうか?または、ふりがな表示させる時に、読みをあらかじめ指定しておいて、ふりがな表示をさせることはできるのでしょうか?
宜しくお願い致します。

A 回答 (5件)

#4です。

人間がみて、事実に照らして、間違い分のフリガナの入力は、人手で(私の言う)B1に入力せざるを得ないでしょう。B1(B列)に入力がなければ、現在のフリガナを修正しないようにプログラムを修正してはどうでしょう。垂水をタルミズかタルミかはコンピュタプログラムで
は判断は難しい。漢字変換辞書を自由(事実辞書に出る)気がする。
それと現在のフリガナは入力者が誤ったにしろ、漢字変換時にそう言う読みを使ったことは間違いないのです。
    • good
    • 0
この回答へのお礼

なるほど、そうですね。動作確認しましたら、imogasiさんのアドバイスいただいた方法でうまくいきました。本当にありがとうございました。大変勉強になりました。

お礼日時:2004/11/30 23:39

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させる・・・とか。今日早速職場で試してみます!

補足日時:2004/11/30 06:07
    • good
    • 0

下記のマクロは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
    • good
    • 0
この回答へのお礼

ご丁寧に回答をいただきましてありがとうございました。なるほど、こういう書き方ができるんですね。大変勉強になりました。ありがとうございました。

お礼日時:2004/11/30 23:42

>ふりがなが完全でない場合、編集は手作業なんでしょうか?



このマクロでは、それが限界です。

>読みをあらかじめ指定しておいて、ふりがな表示をさせる

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

とか。あとは、最終行までループするだけです。
    • good
    • 0

こんにちは。



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

この回答への補足

ふりがなが完全でない場合、編集は手作業なんでしょうか?

補足日時:2004/11/29 19:02
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!