• ベストアンサー

エクセルのsetphonetic関数

cj_moverの回答

  • ベストアンサー
  • cj_mover
  • ベストアンサー率76% (292/381)
回答No.3

こんにちは。お邪魔します。 #投稿文を書いている間に#2さんの投稿が追加されていて、 #ネタ的には被ってしまって恐縮ですが、、、。 とりあえずは、.SetPhonetic メソッドでフリガナを設定してみて、 望んだものと違っているセルを選択してから、下に挙げたのマクロを実行してみて下さい。 次々とフリガナの候補を切り替えていきます。 ボタンに登録しておけば、そこそこの編集効率は達成できるでしょう。 元々のセルのフリガナ表示は小さなフォントなので、見難い場合は フリガナ編集作業中は、どこか空いているセルに、 ワークシート関数を設定しておくといいでしょう。 例えば、仮にC列にフリガナを表示させるなら '  With ActiveCell     With .EntireRow.Cells(1, "C")       If .FormulaLocal = "" Then .FormulaLocal = "=PHONETIC(" & .Address & ")"     End With ' ・ ' ・ ' ・ '  End With のような要領で、書き加えておいたものを実行して、編集が終ったら、 (手作業や他にボタンを用意して)この数式を消去するような運用で、、、。 今回はボタンを押す度に次のフリガナ候補に切り替えるようにしていますが、 アイディアとしては、フリガナ候補をリスト化して、 CommandBarやListBoxなどに全候補表示されたものから選ぶ、 ということも可能です。 ただ、候補があまり多くなると、却って実用的でなくなりますから、 (ツリー構造などの」)体系的な候補表示が必要になると思います。 今回はそこまで考える余裕もないので、 VBAでの基本的なフリガナの扱い、を一通り理解して貰えそうな 簡易なものでお応えします。 ' ' /// フリガナを設定。実行の度に次の候補にて設定。 Sub Re8768439() Dim v Dim sS As String Dim sD As String   With ActiveCell ' ※ 必ず、対象セルをアクティブにしてから実行。     ' ' フリガナを表示する     If Not .Phonetic.Visible Then .Phonetic.Visible = True     ' ' フリガナが設定されているか、判別     If .Phonetics.Count > 0 Then ' フリガナが設定されているなら       ' ' セルの値(漢字?相当)       v = .Value       ' ' 現在設定されているフリガナ を取得       sS = .Phonetic.Text       ' ' 統一する為、スペースを全角で統一       If InStr(sS, " ") Then sS = Replace(sS, " ", " ")       ' ' Application.GetPhonetic メソッドで 最初のフリガナ候補 を取得       sD = Application.GetPhonetic(v)       ' ' 現在のフリガナ と フリガナ候補 が 一致するまでループ       Do Until sD = sS         sD = Application.GetPhonetic() ' 次のフリガナ候補 を取得       Loop       ' ' 現在のフリガナ と フリガナ候補 が 一致したら 次のフリガナ候補 を取得       If sS = sD Then sD = Application.GetPhonetic()       If sD = "" Then ' フリガナ候補 が 空の文字列 なら         .Phonetics.Delete ' フリガナ設定を削除       Else         .Phonetic.Text = sD ' フリガナ候補 を フリガナに設定       End If     Else ' フリガナが設定されていないなら       .SetPhonetic ' フリガナを設定(最初のフリガナ候補)     End If   End With End Sub

関連するQ&A

  • Excelの漢字からカナを出力する「Phonetic関数」について

    テキストファイルに書き込まれた音楽の日本語タイトル(漢字・かな・カナ・英字の混ざるもの)を、Excelを使用し、自動的に半角カタカナに変換するマクロを使用しています。使用している関数は「SetPhonetic」を使用しています。 この関数で疑問があるのですが、変換する元のファイルはただのテキストファイルなのに、なぜ正しい読み方で変換されるのでしょうか? たとえば「小田和正」を「ショウダワショウ」と変換されても不思議はないのですが。。。 オンラインで入力された顧客名に自動的にふりがなをつけるシステムに応用したいと考えています。もしどなたかこの関数の仕組みをご存じの方がいらっしゃいましたら、教えてください!

  • エクセルのPHONETIC関数について

    100件の住所録がアクセスで作ってエクセルに落としたため、通常の並べ替えができません。 ですのでこの関数を使って漢字のふりがなを振るのですが、全件ひとつずつ同じ作業をするのがたいへんです。1件この関数を使ったらあとは、どういう手順をふんだらいっぺんにふりがなをふれるのか教えてください。

  • EXCEL 関数を文字として

    EXCELで関数で計算や現れた文字を、実際の文字として扱うには どうしたらいいのでしょうか? 具体的にいいますと、PHONETICという関数でフリガナを表示したのですが、 それをフリガナとして他のEXCELのファイルにコピーして使いたいのです。 ただコピペすると、関数のため、出てきません…。 EXCEL初心者です。どうか教えてください。 宜しくお願いします。

  • エクセルのふりがな関数について

    既に入力してあるデータのふりがなを出したいのですが、phonetic関数を使ってももとある漢字のデータしか表示されません。”書式”の”ふりがな”の”編集”をクリックするとふりがなが表示されるようにはなるのですが、セル1つ1つに対してその操作をしないとふりがなの表示ができません。なんとか一括でふりがなの表示ができる方法はないでしょうか?ご教示ください。

  • エクセル関数 PHONETICについて

    関数 PHONETICでふりがなをふるとき、カタカナではなくてひらがなにする方法を教えてください。 自分なりにも調べたんですが、元セルを選択→書式→ふりがな→設定→ふりがなタブで種類をひらがなに変更というやり方でできるということらしいですが、これってウィンドウズXPくらいまでのやりかたですよね? 私のPCはウィンドウズ7で、書式のところを選択しても「ふりがな」という項目がないんです。 あるのは「行の高さや列幅の変更、シートの整理、セルの保護や非表示」だけなのですが、どうやったらいいか、分かる方お願いします!

  • エクセル関数 PHONETICについて

    エクセル関数について教えてください。 セルAに入れた会社名に セルBにふりがなをつけたいので セルBに  =PHONETIC(A1) といれます。 これで ちゃんとふりがながうたれるのですが 株式会社 太郎商事  有限会社 花子興業 など 株式会社や有限会社には ふりがなをつけたくありません。 (並べ替えをしたい為) 何か良い方法はありますか?

  • エクセルの関数で複数条件での抽出

    エクセルの関数を教えて欲しいです。 会員番号順に並んだ名簿を、別のシートへフリガナの「ア行」「カ行」「サ行」・・・・と フリガナ順で抽出をしたいのです。 下の図が関数でやりたいイメージです。 私自身、VBAは全く分からなく、関数なら初心者程度に分かりますので関数で 教えて下さい。 宜しくお願いします。

  • Excel2007 ふりがな関数について

    Excel2007 ふりがな関数について Phonetic関数を設定してふりがなを表示させようとしても 文字全体にふりがなが振られないことがあると聞きました。 同じセル内の文字なのに ふりがなが付いた部分と無い部分ができるなんて 信じられませんが・・・・・ 私はそのような現象に会ったことがありませんが 理由を知りたいのと 対処法を教えてください。 宜しくお願いいたします。

  • エクセル

    エクセルの関数PHONETICをつかうと、ふりがなが、カタカナで表示されますが、 ふりがなには表示できないのでしょか?

  • INDEX関数とふりがな表示

    INDEX関数とふりがな表示 Office2007を利用してます。Excelで一枚目のシートに名簿があります。名簿の名前欄にはふりがなが表示されています。(フォネティック関数ではなく、書式のふりがなの表示/非表示です。) 二枚目のシートにインデックス関数を用いて名簿の名前を引張ってきた場合、ふりがなが表示されません。 これは別のセルにフォネティック関数で表示させるようにするしか方法はないのでしょうか?