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

このQ&Aのポイント
  • Excel 2002を使用しています。セルA1に全角カナが入力されている場合、=ASC(A1)式は半角カナを返しますが、=PHONETIC(A1)式は半角カナに変換されません。
  • Excel 2002では、=PHONETIC()関数を使用しても全角カナが半角に変換されないバグがあります。
  • Excel 2002の=PHONETIC()関数では、全角カナの一部が正しく変換されない現象が起こります。このバグについての情報をお持ちの方はいらっしゃいますか?
回答を見る
  • ベストアンサー

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

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

noname#204879
noname#204879

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

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.5

追伸です。 # 自家製PHONETIC 関数を考えてみたいと思います。もしくは、、セル上の文字の中を半角に換えるもののどちらかです。 よく考えれば、PHONETIC 関数なら、その出てきたものを、ASC関数で半角にすればよいのですから、その中身を半角にしなければ意味がありませんでした。マクロ実行後は、長音記号等は、半角になっていると思います。 '標準モジュールに貼り付けて実行(F5) します。 Sub PhoneticHalfKana() '長音記号等を半角のふりがなにするマクロ Dim rng As Range Dim c As Variant With ActiveSheet   On Error Resume Next   Set rng = .UsedRange.SpecialCells(xlCellTypeConstants, xlTextValues)   On Error GoTo 0   If Not rng Is Nothing Then   Application.ScreenUpdating = False   For Each c In rng     c.Phonetics.CharacterType = xlKatakanaHalf     If LenB(StrConv(c.Phonetic.Text, vbFromUnicode)) - LenB(c.Phonetic.Text) <> 0 Then       c.Phonetic.Text = StrConv(c.Phonetic.Text, vbKatakana + vbNarrow)     End If   Next c   Application.ScreenUpdating = True   End If   Set rng = Nothing End With End Sub

noname#204879
質問者

補足

》 PHONETIC 関数なら、その出てきたものを、ASC関数で半角にすれば 》 よいのですから… なるほど。=ASC(PHONETIC(A1)) で行けそうですね。ありがとうございました。 実は(ご存知かも知れませんが)私は Excel のマクロがカラッキシ出来ない人です。 でも提示いただいたマクロを是非試してみたいものです。「標準モジュールに貼り付けて」の「標準モジュール」てのが分かりません。「標準モジュール」の出し方を教えてください。

その他の回答 (5)

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.6

こんにちは。 >ご存知かも知れませんが・・私は Excel のマクロがカラッキシ出来ない人です。 mike_gさんとは、ここ以外ではやり取りしたことはないはずですが、私の知っている人と同じなら、前のところは読んでいましたので、良く知っています。(^^;(つまらないことで、スミマセン) マクロは、本来は、食わず嫌いでしょうけれども、実際、Excelは何でもできるので、マクロに興味を持っても、それだけでは習得には続かないものですね。私は、マクロを覚える目的はありませんでしたが、語学のひとつとして覚えました。 ただ、Office を深く知るためには、どうしても、VB やC言語などの知識が必要になってくるようです。最近では、.Net のことも出てきています。Excel 2003以降では、.Net の一部の機能が出来るようになっています。 >「標準モジュールに貼り付けて」の「標準モジュール」てのが分かりません。「標準モジュール」の出し方を教えてください。 定型文ですが、 ------------------------------------------------------------- Alt +  F11 (Altを押しながらF11)を押すと、Visual Basic Editor 画面が出てきます。 次に、メニューの[挿入]-[標準モジュール]と開けて、クリックすると、画面が現れますので、Sub ~End Sub のコードを貼り付けます。 貼り付けたら、Alt + Q で、画面を閉じます。 ------------------------------------------------------------- 今回のマクロは、マクロを行っても文字の部分は何も変わりませんが、Phonetic 関数で、見てみると変化が出てきます。

noname#204879
質問者

お礼

お蔭様でマクロを実行した後で PHONETIC関数の変化を確認できました。 誠にありがとうございました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.4

こんにちは。 >このカテゴリーおよび Google で“PHONETIC”をキーワードにして検索してみましたが、該当する記事を見出せないでいます。 PHONETIC ではなくて、「ふりがな」です。 直接、「長音記号」の問題とは関係がありませんが、いくつかの資料があります。 大元のソースは、 http://msdn.microsoft.com/en-us/library/ms970145.aspx IFELanguage Functions 私自身も、Cに関しては未だ勉強中で詳しくは分かりませんが、いわゆる、ふりがなを導きだすのは、API(Application Programming Interface)を使っているわけです。 「楽してWORDだルビを振ろう」 http://www.sh.rim.or.jp/~hands/readings/ruby001.htm >ime98から タイプライブラリ*1なるものが公表されています (同じテーマで、未だに更新しているのは、ちょっと驚きです) IME98のタイプライブラリが出る前に、Excelの関数を使わずに「ふりがな」を出す方法というのが発端です。ExcelのPHONETIC関数を利用する方法もあるのですが、ユーザーが、必ずしもそういう環境にある人ばかりではありませんから、Windows のシステムを使う方法や、プライベートのフリーのタイプライブラリを利用する方法を編み出した人もいました。Net 内で有名な回答者の一人が、この方法を提示しました。元のタイプライブラリは、海外の人が公開したものです。私も二種類の方法を考えてみました。 その周辺の話のネタです。 http://homepage1.nifty.com/MADIA/vb/vb_bbs2/200309/200309_03090059.html この周辺の話のキーワード「MSIMEJPN」 もし、もう少し、ここの質問をオープンしていただければ、自家製PHONETIC 関数を考えてみたいと思います。もしくは、、セル上の文字の中を半角に換えるもののどちらかです。もしご興味があればですが。しかし、前回書いた変換リストの順位を変換する方法は分かりません。 なお、画像は、今回、「長音記号」を半角にした方法です。セルの中の文字を選択して、Shift + Alt + ↑ で、リストを出して、その中から、半角を選択するものです。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.3

こんばんは。 この話は、もともと、Office 97の時に、頻繁に出てきた話で、当時の情報が未だに残っているはずです。 >=PHONETIC()関数 で一発で半角の「ー」が返るべきと思っていたのは私の「誤解」だったのですね。 おそらく、この話は、MSIMEの変換システムに関わってくる話だと思いますが、変換するときに、文字--読みには、数値が付けられるようです。 これは実験はしていないので、違うかもしれません。うろ覚えの話ですが、ずっと、こういうイメージをしてきています。  回数 --------- =比率  規定数 この数値が高ければ高いほど、読みと文字の関係が強くなるわけです。 しかし、この規定数が多ければ、いくら変換しても、読みと文字の関係が強くなりません。そして、数値の近い順に並べてあって、そのリストの1番目から出てくるわけです。 今は、半角を使う絶対数が減っていることと、「長音記号」には、二種類あって、それに対応する半角がひとつなので、また、よけいに出てこないようになっているのではないか、と考えています。 >一発で「phonetic(希望)」のようにする設定は無理ということですね? 私の理屈で行けば、分母は変えられませんが、何十回なのか、何百回なのかで、変換の回数によって、変更できるのではないかと考えています。

noname#204879
質問者

お礼

》 この話は、もともと、Office 97の時に、頻繁に出てきた話で、… 知りませんでした。(忘れてしまったのかも) このカテゴリーおよび Google で“PHONETIC”をキーワードにして検索してみましたが、該当する記事を見出せないでいます。 何れにしても、PHONETIC関数が半角カナを返せるのは“純粋な”カナだけで長音記号、ナカグロ等の記号類は非カナ扱いである、と理解しておきます。 今後は =SUBSTITUTE(SUBSTITUTE(PHONETIC(A1),"ー","ー"),"・","・") で対応しようと思います。 色々とありがとうございました。

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

mike_g さん、こんにちは。 mike_gさんは、某所で、長くExcelを教えてきた立場でしょうから、今さら、私が満足させられるだけの情報はないかもしれません。 しかし、 >全角文字「ー」を半角にして返してくれないのです。 これは、誤解なさっているように思います。慣用的な問題なのだと思います。 まず、この呼び出しの仕組みは、一応は、Microsoft 側はmsime.h(C言語のソース)で公開されてはいるようですが、MSIMEの変換リストの中から、最初にあがっているものを挙げてきているに過ぎないわけです。 例えば、「幸子」は(さちこ)なのか、(ゆきこ)なのかは、それぞれの人によって違うのは、変換リストに一番上にあるものを呼び出しているわけです。「-」(長音記号)の半角[JIS176 = &HB0] が、一番上にはないわけで、もしも、IMEを使って、よく半角を使って変換していたら、そこに出てくるはずです。試しに、全角文字のCtrl + Alt + ↑(上) で、リストの2番目か3番目のものを出してみれば、出てくるはずです。半角+全角+半角という表示は、あくまでも、慣用的文字単位の変換なだと思います。

noname#204879
質問者

補足

[回答番号:No.1]で指摘された私の勉強不足の所為で、恥ずかしながら Wendy02さんのコメントがよく分からないでいます。 何れにしても、“半角カタカナ”に[ふりがな設定]しても、=PHONETIC()関数 で一発で半角の「ー」が返るべきと思っていたのは私の「誤解」だったのですね。うーむ… 添付図(をアップする予定でこれを書いていますが、この[補足内容]にアップ不可能な場合はご容赦ください)は私のCDの曲目リストの一部ですが、「phonetic(現実)」の当該現象は当然のことで、一発で「phonetic(希望)」のようにする設定は無理ということですね? ちなみに、使用中の IME は Microsoft Natural Input 2002 ver.8.1 です。

  • imogasi
  • ベストアンサー率27% (4737/17068)
回答No.1

>Excel 2002 を使用しています・・ から第5行の半角文字(ASII 176)に変換されます。 までは本質問と関係ないと思います。記述しないほうが良い。 >=PHONETIC(A1) は全角文字「ー」を半角にして返してくれないのです Phonetic関数は、IMEで入力したときのカナ漢字変換時のかなの入力を エクセルが記憶していて、再現するものと思います。 例えば 西野ーー 普通はニシノで入れますがサイノで(それも1文字ずつ)仮名漢字変換すると=PHONETIC(A1)はサイノと出ました。 質問者はこの関数にASC関数のような、変換機能を期待しているようですが、 http://www.relief.jp/itnote/archives/000082.php をはじめ Googleで「=PHONETIC()関数」で照会するとたくさん解説実例が出るが、めぼしいものを読んで、勉強しなおしてください。 またフリガナの、ひらがな、全角カタカナ、半角カタカナを左右するのは、メニューの書式ーふりがなーふりがなの設定です。 A1セル(漢字の入ったセル)の設定が、=PHONETIC(A1)を入れたセル(私の場合B1セル)にも影響するようです。 http://www.relief.jp/itnote/archives/000019.php ーーー なお添付画像の=PHONETIC(A)でなく=PHONETIC(A1)などですよ。

noname#204879
質問者

お礼

》 …記述しないほうが良い 》 …勉強しなおしてください はい、勉強してから出直します。(自信なしですけど…)

関連するQ&A

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

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

  • Phonetic関数について

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

  • Excel:PHONETIC関数でアルファベット・数字を半角にしたい

    Excel2003です。 セル[A2]に文字入力し、セル[G2]に下記数式を設定し、フリガナを半角カタカナで表示させています。 =SUBSTITUTE(SUBSTITUTE(PHONETIC(A2),"(株)",""),"(有),"") ※式中の(株)(有)は本来は記号(機種依存文字)です。 このとき、セル[A2]に全角ひらがな、カタカナ、漢字を入力した場合はセル[G2]には半角カタカナで表示するのですが、全角数字やアルファベットを入力した場合に、セル[G2]にはそのまま全角文字で表示されてしまいます。 これらを半角文字で表示させることは出来ないでしょうか? もちろんひらがな、カタカナ、漢字は従来どおり半角カタカナで表示させつつ、です。 よろしくお願いいたします。

  • PHONETICでふりがな

    EXCEL2002  フリガナ出そうとPHONETIC 使うと8P位のフォントで漢字混ざって表示されます カナ表示させるセルの書式 フォント変えてみましたがうまくいきません IMEは半角カナになっています

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

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

  • 英数文字を半角に、カナを全角に変換したい(Excel関数)

    Excel関数で、英数カナ文字混在したセルに対して 英数は半角に、カナ文字は全角に変換したいのですが なにかいい方法はないでしょうか? JIS関数、ASC関数では上手くできません。 当方はエクセル駆け出しです。VBAとかを使えば上手くいくのでしょうか?よろしくご教授願います。

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

    エクセル2007を使っています。 名簿を作っていますが、氏名と入力すると「ふりがな」を横のセルに出すために、「PHONETIC」関数を使ったのですが、全角カタカナで出てきます。 例 A1に「福井」と入力、B1に「=PHONETIC(A1)」と関数を入れると、「フクイ」と出ます。 全角のひらがなで「ふくい」と出るようにしたいのですが、どの設定を変更すれば良いのか見つかりません。 以前、エクセル97か2000を使ったときには、全角ひらがなで出ていたように思います。 分かる方、コメント下さい。宜しくお願いします。

  • 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が機能しなくなってしまいました。ご助言をお願いします。

  • 半角カナから全角カナへ

    お世話になります。 今、フォームから入力された半角カナを全角カナへ変換しようとしているのですが、どうしてもうまく行きません。 処理は以下のようにしています。 jcode::convert(\$str, 'euc'); if($str =~ /[\xA1-\xDF]/){ jcode::h2z_euc(\$str); } (1)まず、半角カナが含まれているかのチェックで[\xA1-\xDF]を使用していますが色々調べたところ、実際は (?:\x8E[\xA6-\xDF]) が正しいようなのですが、この場合文字数が少ないとひっかかってくれません。例えば半角のア1文字や2文字など。また、文字数が多くても半角英数と半角カナが混在しているとひっかからない場合もあります。 上記の式だとひっかかってくれますが、この判定で構わないのでしょうか。 (2)上記の式できちんと置換されるものとされないで漢字のように文字化けするものと出てきてしまいます。 例えば「インターフェース」などという半角は全滅です。 「バージョン」などは大丈夫でした。 間違いなど教えて頂ければと思います。 宜しくお願い致します。

    • ベストアンサー
    • Perl
  • eval 半角カナが文字化けする

    初めて投稿させていただきます。 半角カナが混ざっている文字列をevalすると、文字化けする場合があります。 どうすれば文字化けしないようになりますか? ちなみに全ての半角カナを全角カナに置換してevalを行いその後、半角カナに戻すということをやったのですが、もともと全角カナ文字まで半角カナに変換されてしまいました。できれば全角カナは全角カナ、半角カナは半角カナのまま文字化けせずにevalする方法を教えてください。

    • 締切済み
    • PHP

専門家に質問してみよう