• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:=PHONETIC()関数が返す半角カナが変?)

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

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

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

  • ベストアンサー
  • 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/17069)
回答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