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

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

No.3
- 回答日時:
こんばんは。
この話は、もともと、Office 97の時に、頻繁に出てきた話で、当時の情報が未だに残っているはずです。
>=PHONETIC()関数 で一発で半角の「ー」が返るべきと思っていたのは私の「誤解」だったのですね。
おそらく、この話は、MSIMEの変換システムに関わってくる話だと思いますが、変換するときに、文字--読みには、数値が付けられるようです。
これは実験はしていないので、違うかもしれません。うろ覚えの話ですが、ずっと、こういうイメージをしてきています。
回数
--------- =比率
規定数
この数値が高ければ高いほど、読みと文字の関係が強くなるわけです。
しかし、この規定数が多ければ、いくら変換しても、読みと文字の関係が強くなりません。そして、数値の近い順に並べてあって、そのリストの1番目から出てくるわけです。
今は、半角を使う絶対数が減っていることと、「長音記号」には、二種類あって、それに対応する半角がひとつなので、また、よけいに出てこないようになっているのではないか、と考えています。
>一発で「phonetic(希望)」のようにする設定は無理ということですね?
私の理屈で行けば、分母は変えられませんが、何十回なのか、何百回なのかで、変換の回数によって、変更できるのではないかと考えています。
》 この話は、もともと、Office 97の時に、頻繁に出てきた話で、…
知りませんでした。(忘れてしまったのかも)
このカテゴリーおよび Google で“PHONETIC”をキーワードにして検索してみましたが、該当する記事を見出せないでいます。
何れにしても、PHONETIC関数が半角カナを返せるのは“純粋な”カナだけで長音記号、ナカグロ等の記号類は非カナ扱いである、と理解しておきます。
今後は
=SUBSTITUTE(SUBSTITUTE(PHONETIC(A1),"ー","ー"),"・","・")
で対応しようと思います。
色々とありがとうございました。
No.2
- 回答日時:
mike_g さん、こんにちは。
mike_gさんは、某所で、長くExcelを教えてきた立場でしょうから、今さら、私が満足させられるだけの情報はないかもしれません。
しかし、
>全角文字「ー」を半角にして返してくれないのです。
これは、誤解なさっているように思います。慣用的な問題なのだと思います。
まず、この呼び出しの仕組みは、一応は、Microsoft 側はmsime.h(C言語のソース)で公開されてはいるようですが、MSIMEの変換リストの中から、最初にあがっているものを挙げてきているに過ぎないわけです。
例えば、「幸子」は(さちこ)なのか、(ゆきこ)なのかは、それぞれの人によって違うのは、変換リストに一番上にあるものを呼び出しているわけです。「-」(長音記号)の半角[JIS176 = &HB0] が、一番上にはないわけで、もしも、IMEを使って、よく半角を使って変換していたら、そこに出てくるはずです。試しに、全角文字のCtrl + Alt + ↑(上) で、リストの2番目か3番目のものを出してみれば、出てくるはずです。半角+全角+半角という表示は、あくまでも、慣用的文字単位の変換なだと思います。

この回答への補足
[回答番号:No.1]で指摘された私の勉強不足の所為で、恥ずかしながら Wendy02さんのコメントがよく分からないでいます。
何れにしても、“半角カタカナ”に[ふりがな設定]しても、=PHONETIC()関数 で一発で半角の「ー」が返るべきと思っていたのは私の「誤解」だったのですね。うーむ…
添付図(をアップする予定でこれを書いていますが、この[補足内容]にアップ不可能な場合はご容赦ください)は私のCDの曲目リストの一部ですが、「phonetic(現実)」の当該現象は当然のことで、一発で「phonetic(希望)」のようにする設定は無理ということですね?
ちなみに、使用中の IME は Microsoft Natural Input 2002 ver.8.1 です。
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)などですよ。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(Microsoft Office) WordやExcelで英数字のみ半角または全角にしたい 6 2022/08/03 08:18
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
- Excel(エクセル) 全角文字「ヴ」の半角文字「ヴ」への変換方法について 3 2022/11/05 12:07
- その他(Microsoft Office) 英数字のみ全角から半角に変換 4 2023/07/28 14:48
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Visual Basic(VBA) エクセルの数式で教えてください。 1 2023/07/31 15:49
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- Excel(エクセル) エクセル 関数について質問です。 2 2022/10/03 11:14
- Excel(エクセル) 日本語向きの“ダブルクオーテーション”の入力 1 2022/10/16 11:33
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
℃の半角表示
-
半角の『°(単位の度)』
-
契約書や 公文書・私文書などに...
-
半角スペース
-
半角の×(かける)は?
-
Excel 文字列の中から数字だけ...
-
EXCELで、セル内の半角カ...
-
EXCELの文字列操作で文字数不足...
-
エクセル関数で文字列の中のス...
-
【VBA】ファイルパスに半角スペ...
-
ビジネスの文書における、数字...
-
エクセルでひらがな・漢字はそ...
-
問2 次の文中の空欄にあてはま...
-
エクセルのハイパーリンクの文...
-
エクセルVBAでMsgboxの表示をそ...
-
テプラは半角数字が使えますか?
-
エクセルで 全角の空白を含む...
-
隅付き括弧に半角はありますか...
-
ACCESSで全角と半角を変...
-
半角英数で♭の入力
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
契約書や 公文書・私文書などに...
-
半角の×(かける)は?
-
半角の『°(単位の度)』
-
℃の半角表示
-
EXCELの文字列操作で文字数不足...
-
半角スペース
-
EXCELで、セル内の半角カ...
-
エクセル関数で文字列の中のス...
-
Excel 文字列の中から数字だけ...
-
テプラは半角数字が使えますか?
-
EXCEL95 VLOOKUP関数で半角と全角
-
メールアドレスの上ハイフン入...
-
エクセルでひらがな・漢字はそ...
-
ビジネスの文書における、数字...
-
エクセルで、JIS関数、ASC関数...
-
隅付き括弧に半角はありますか...
-
Excel2016 検索の窓を常時表示...
-
エクセルで 全角の空白を含む...
-
ヘッダー(フッター)の全角・...
-
【VBA】ファイルパスに半角スペ...
おすすめ情報