• ベストアンサー

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

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

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

そんな便利な関数があるのかと、検証してみたところ・・・ 変換される根拠は、IMEなのどの漢字変換システムを使い、変換を掛けているようです。 セルA1に書かれた漢字の振り仮名を表示させるには、 =+PHONETIC(A1) という関数を書きます。ここまではOKですね。 「おだかずまさ」は、ほぼ一発で「小田和正」になりますね。 このような単純な場合には、ふりがな変換も簡単のようです。 ためしに、「おおさかふ」を漢字変換して「大阪府」とした場合、当然、ふりがな変換も「オオサカフ」になりますね。 次に「だいさかふ」を単漢字変換を行って「大阪府」と入力しても、ふりがな変換後「オオサカフ」になりますね。 これはどんなことが言えるかと言うと、Windowsに持っている辞書を逆引きして、「大阪府」は何て読むの?と裏で問い合わせているようです。 例えば、「貴麗茶」という商品名があります。「きれいちゃ」と読みます。 一般には、このような言葉はありません。なので、ふりがな変換もおかしな状態になります。しかし、この言葉を辞書に登録をして、再度変換を掛けると、何事もないように、「きれいちゃ」と変換されます。 ということで、仕組みは、Windowsの辞書の逆引きをしているというだけです。 ですから、PCによって、辞書が異なると、変換のされかたも異なることになり、注意が必要です。

Rubellite
質問者

お礼

検証までしていただきまして、ありがとうございました!m(_ _)m ペコ 参考までに、実際にテキストファイルに出力されたMP3のTag情報を半角カナに置換するスクリプトを公開します。 ●使用するソフト   ・SuperTagEditor(mp3のTag情報を整理するため)   ・Excel ●手順 1.Tagエディターでcsvテキストに出力する 2.下記のマクロと式のかかれたExcelに出力されたcsvを貼り付ける 3.マクロを実行する ●Excel内部の式(A列を指定する場合) '置換したい列を出力先のセルに式で指定する =ASC(PHONETIC(A:A)) 複数の列がある場合、各列に対応する置換先の列に上記の式を入力しておく ●Excel内部のマクロ(A~D列を指定する場合) Sub AD列() '置換したいワークシートの範囲指定 Worksheets("list").Range("A:A,B:B,C:C,D:D").Select '漢字をIMEの辞書の逆引きでカナに置換する Selection.SetPhonetic End Sub という感じですね。MP3対応のカーオーディオで曲目やアーチスト名を表示させるのに、非常に便利ですよ~(^_^) CD一枚で120曲は入りますからね~

その他の回答 (1)

  • k-family
  • ベストアンサー率34% (180/523)
回答No.2

VBAでSetPhoneticは使ったことがありませんが、シートの方のPhoneticならわかります。 これはそのセルへ入力したときに使ったIMEへの入力を覚えているだけです。従いまして他のテキストからコピーしてくると変換されません。 それから#1でspice_piriさんが大阪府の例をあげていらっしゃいますが、私の環境ではダイサカフとなります(EXCEL2002+ATOK15)。ATOK特有の現象かもしれません。 私はご希望の利用には使えないと思いますし、過去にできると聞いたことがありません。が、ひょっとしたらVBAでMS-IMEを使えばできるのかもしれません、Rubelliteさんの環境でご確認ください。

Rubellite
質問者

お礼

IMEによって変換が異なるみたいですね~。 ただ、同じExcel2002+ATOK15の環境を使用しているのですが、大阪府の置換内容がk-familyさんと異なりました。私が試したのは 大阪府 京都府 長岡京市 山本山 で、置換結果は オオサカフ キョウトフ ナガオカキョウシ ヤマホンザン となりました。IMEの辞書設定によっても変わるのかもしれませんね。私の場合は、専門辞書の上位に「カタカナ英語辞書」「インターネット用語」などがあります。 もし人名の変換をできるだけ正しくするとしたら、もしかすると「人名辞書」を上位にもってくるといい結果が得られるかもしれませんね。 あと、私が大阪府在住で、住所の変換の中で「大阪府」と入力することが多く、ATOKの辞書学習機能で「おおさかふ」の入力結果の上位に「大阪府」がきているのも関係があるかもしれません。 置換結果が使用するPCや、使用する人によってがらっと変わってしまいそうですね。 MP3のTag情報が比較的正しく置換されるのは、一度MP3 Tagエディターに正しい入力をしているからかもしれませんね。 いや~、言語解釈は奥が深いですね~(>_<)

関連するQ&A

  • =PHONETIC()関数が返す半角カナが変?

    Excel 2002 を使用しています。 「ハート」、「ルーム」、「ワード」等の全角カナがセル A1 に入力されているとします。ちなみに、当該文字の「ー」の ASIIコードは 8508 です。 ここで、式 =ASC(A1) は半角カナを返してくることはご承知のとおりです。当然のことながら「ー」も該当する(?)半角文字(ASII 176)に変換されます。 さて、セル A1 を選択して[書式]→[ふりがな]→[設定]→[ふりがな]のメニューで、[種類]を“半角カタカナ”を選択して[OK]をクリックしておきます。 奇妙なことに 式 =PHONETIC(A1) は全角文字「ー」を半角にして返してくれないのです。 この現象は Excel 2002 だけの(既知の)バグなのでしょうか?何か情報をご存知の方、出典を付して教えていただけないでしょうか?

  • Phonetic関数について

    こんばんは。PHONETIC関数についてなんですけど、僕のパソコンでA1のセルに 郵便番号を入れ、その郵便番号を変換することで住所を入力し、B1のセルに PHONETIC関数を(正確にはLEFT(PHONETIC(A1),8)です。)の数式を入れる と一台のPCでは半角数字で、もう一台のPCでは全角数字で表示されます。 A1のセルのふりがなの設定を半角カタカナ、全角カタカナに変更しても 変わりません。どうしてなんでしょう?ご存知の方教えて下さい。

  • EXCELでPHONETICカナ変換で「ゑ」

    EXCELの関数、PHONETICを使って、漢字のフリガナを出してみたのですが、 「ゑ」の文字のカナが「ヱ」(全角)で表示されてしまいました。 ざっと見たところ、他の文字はちゃんと入力した漢字の読みが表示 されているのですが、なんで「ゑ」だけは「エ」(半角)でなく、しかも「エ」(全角)ではなく、旧字?の「ヱ」なのでしょうか? もしかしてウィルスかなにか?と思ったり、バグ?と思ったり。 誰か直し方を知っている人がいたら、教えていただきたいのですが。 宜しくお願いします。

  • EXCEL(csv)で全角カナを半角カナに一括変換できないでしょうか

    ある年賀状ソフトに入力してあるデータを 別の顧客管理ソフトにCSVでインポートとしようとしております。 しかし年賀状ソフト側は氏名のふりがなが全角カナで入っており (氏名を入力するとそのままふりがな欄に入力される) 顧客管理側はふりがなが半角カナ管理のためインポートでエラーになってしまいます。 EXCEL(csv)にて全角カナを半角カナに一括変換するような方法をどなたかご存じないでしょうか。 お知恵を拝借できれば助かります。

  • EXCELでのカナかな変換

    Excelで半角カナで書かれた列があります。ひらがなに変換したいのですが、教えて下さい。具体的には氏名の「フリガナ」を「ふりがな」にしたいのです。

  • 半角カナを全角カナに変換したい

    表題の通りです。 先輩から引き継いだエクセルのデータが、全角カナと半角カナとの両方を、使い分けなどではなく使用しているものだったので、半角カナを全部、全角カナに変換したいと考えています。 置換機能で50音全部を置換するのは大変ですので、一度に変換する良い方法があれば教えてください。 また、全角アルファベットを、普通の英字(半角アルファベット?)にも変換したいと思っています。

  • Excelで漢字をひらがなにする関数

    セルに入力されている単語(漢字、カタカナ、ひらがなが混合、例:「エクセル関数」)があります。それを隣のセルに全部ひらがなで出したいのですが、方法はありますか?IMEの「再変換」の機能ではなく、関数があれば教えていただきたいのです。(「PHONETIC」関数は知っていますが、これはカタカナに変換する関数です) 段階として、 1.ひらがなに変換する関数 2.または、PHONETIC関数でカタカナに直したセルをひらがなに変換する関数 3.ダメなら、うまいこと「ひらがな」になるマクロの組み方(あまり好みませんが、この際・・・) を、ご存知の方、是非よろしくお願いします。

  • エクセル_関数_半角カナを全角にしたいのですが。

    お尋ねします。 半角カナを全角カナに変換しようと、エクセル関数のJISを使いました。 ところが、1つのセルに255文字までなら正常に変換ができるのですが、256文字以上になると、#VALUEでエラーとなります。 昔のバージョンが低いエクセルでは、1つのセルに255文字までしか入らなかった記憶があるのですが、エクセル2007では、一つのセルに255文字以上登録しているセルもあり、文字が途中で切れているようには見えません。 関数LENを使って調べてみますと、300文字入ったセルもあります。 しかし、その300文字入ったセルを関数の引数とした場合に上記のようなエラーになってしまいます。 「255文字以上のセルは分割してすればいいじゃないか」とのお声もあるかとともいますが、分割はせずに半角カナの入ったセルを全角カナに置き換えることはできないでしょうか。 よろしくお願いします。

  • 半角カナは全角カナに、全角英数字は半角英数字に、一気に置換したい

    「半角カナは全角カナに、全角英数字は半角英数字に、一気に置換したい」と考えた時、同じ様な質問とそれに対する回答は沢山有るのですが、意外に満足出来るやり方が見つからず、大変困っています。 大きな制約条件(これが難題...)として、会社が管理するWindows機なので、使って良いのはWordとExcelだけだという問題が有ります(便利なユーティリティーソフトを見つけても、インストール出来ない)。WordとExcelのマクロは、辛うじて、使用可です。 WWWでWordでのマクロの作例を探し当て、これは良いかなと思ったら、小文字の全角英数字が全部大文字の半角英数字になってしまい、これは駄目でした。 また、Wordの「文字種の変換」を試用してみると、「半角」を指定してテキスト全体を選択して変換した場合、全角英数字が半角英数字になるのは良いのですが、全角カナが半角カナになってしまい、これも非常に不都合でした。 尚、主なターゲットは、ワークシートとかではなくて長文のテキストなので、色々な回答例で「Excelの関数を使えば良い」と書かれている説明を読むと、ちょっと不便だなと感じました。 Wordでのマクロで、完璧なものが有れば、OKなのだと思うのですが、自分には未だそれを作る能力が有りません(これを機に、勉強したいと思っています)。良い解決策や、マクロが有れば、是非お教え下さい。

  • Access2003のVBAで半角カナを全角カナにしたいです

    Access2003を使っています。過去の質問集を検索したのですが分からなかったので教えてください。 次のコードで、「ふりがな」(半角カナ)のところを「ふりがな」(全角カナ)に変更しても、勝手に「ふりがな」(半角カナ)になってしまうのですが、なんとかならないでしょうか? Private Sub Form_Current() Me!整理番号.Enabled = False Me!氏名.Enabled = False Me!ふりがな(注:半角カナになってます).Enabled = True Me!生年月日.Enabled = False End Sub 以前Access2000を使っていた時は対象のフォームにて、テキストボックスに「ふりがな」(半角カナ)と名前をつけていたので問題はなかったのですが、Access2003に移行した際に上記コードの半角カナの部分でエラーが出るようになったので、全角カナに名前を変更した為に.Enabled = Falseが機能しなくなってしまいました。ご助言をお願いします。

専門家に質問してみよう