- ベストアンサー
Excelでカタカナをひらがなに変換する関数って?
Accessでは、strConv関数で、カタカナをひらがなに変更できたりするのですが、Excelではそんな関数ありますか? おわかりの方よろしくお願いいたします。
- みんなの回答 (10)
- 専門家の回答
質問者が選んだベストアンサー
#2,3,5です。 imogasiさんにつられて、ついつい一文字ずつの処理にしてしまいましたが、 taisuke555さんのご指摘のとおり、文字列をそのまま渡しても問題ないですね。 まとめるとこういう感じになりますかね。 Option Explicit Function fxStrConv(strText As String) As String strText = StrConv(strText, vbKatakana) fxStrConv = strText End Function
その他の回答 (9)
- happypoint
- ベストアンサー率36% (521/1422)
#2,3,5,9です。 たびたびすいません。 また誤回答してしまいました。 すいません。 カタカナ→ひらがなであれば、 vbKatakanaではなくてvbHiraganaですね。 訂正します。
- Hageoyadi
- ベストアンサー率40% (3145/7860)
#1です。 >ふりがなではなく、すでにカタカナとして入力された文字を、ひらがなに変換する方法を知りたかったのです。 それ、PHONETICで出来てます。
- imogasi
- ベストアンサー率27% (4737/17069)
#6のご指摘に対し、 複数文字の中の漢字と(私の場合は)ひらがなをより分けるために1文字ずつ判別しましたが、漢字+ひらがなの文字列の中のひらがなだけをカタカナに直してくれるようであれば、結構なことです。 Sub test01() For i = 1 To 3 Cells(i, "B") = StrConv(Cells(i, "A"), 16) Next i End Sub で少数例のテストですが、うまく行くようです。 こちらの方が簡単ですね。ありがとうございました。
- taisuke555
- ベストアンサー率55% (132/236)
imogasiさん、happypointさんへ Strconvは1文字ずつ変換しなくても良いと思いましたが、 その辺どうでしょうか? 私も考えてみたのですが、VBAしか思いつかず、 突っ込みのみですみません。
お礼
ありがとうございます。 私もAccessで使う場合は、1文字ずつの変換やVBAを使わず、更新クエリーで、strConv([フィールド名],vbHiragana)で指定して、ひらがなに変更していましたので、文字列でもいいような気がします。 それに、strConv関数の場合、変換できないものは(漢字とか最初からひらがな)、そのままだった気がしますが。 とっても便利な関数だなと思っていましたので、Excelでもワークシート関数に入れてほしいものです。
- happypoint
- ベストアンサー率36% (521/1422)
#2,3です。 どうせやるなら、ユーザー関数で、というわけで。 VBAを使用しております。 セルに =fxStrConv(B1) これはB1をひらがなに変換した文字列を返す関数になります。 Option Explicit Function fxStrConv(strText As String) As String Dim i As Long Dim strResult As String For i = 1 To Len(strText) strResult = strResult & StrConv(Mid(strText, i, 1), 32) Next i fxStrConv = strResult End Function
お礼
ありがとうございます。 私はstrConv関数の引数をvbKatakanaで指定していましたが、32のことみたいですね。勉強になりました。
- imogasi
- ベストアンサー率27% (4737/17069)
セル単位でひらがな文字をカタカナに変換します。 漢字交じり分もOK。 ひらがな文の入っているセルの対応行の、C列に 出していますが、"h"とすれば、H列にセットします。 変換したいセルを範囲指定して、その後実行してください。 結果としてエクセル2000VBAでもStrConvは使えました。 StrConvの第二引数の「16」を色々変えると、他の変換パターンの変換が可能です。 Sub test03() Dim cl As Range For Each cl In Selection s = "" For i = 1 To Len(cl) s = s & StrConv(Mid(cl, i, 1), 16) Next i Cells(cl.Row, "C") = s n = n + 1 Next End Sub
お礼
ありがとうございます。 strConv関数はExcelでも使えたのですか。 ワークシート関数になかっただけなんですね。 もし、AccessのstrConv関数と同じなら、taisuke555さんのいう通り、文字列でも変換可能だと思います。 ExcelのVBAはよくわからないところがありますので、上のプログラムを参考に勉強してみます。
- happypoint
- ベストアンサー率36% (521/1422)
#2です。 逆を答えてました。カタカナをひらがなに直すには =CHAR(CODE(A1)-256) です。
お礼
ありがとうございます。 実際に試していないのですが、上の関数ですと、ひょっとして、セル内は必ずカタカナでないといけないという前提ですよね。他の漢字・ひらがなが入っていると、まずいですよね。 とすると、IF関数と組み合わせて、セル内がカタカナかを判定してから実行した方がいいような気がします。 ちょっと贅沢ですが、カタカナ(文字コードの範囲)の判定ができるとうれしいんですが。
- happypoint
- ベストアンサー率36% (521/1422)
こんばんわ。 変換する文字が一文字ずつセルに入っているなら =CHAR(CODE(A1)+256) でA1に入ったひらがなをカタカナに変換できます。 セルに複数のひらがなが入っている場合に、 セル単位で変換する関数は知りません。 VBAを駆使したユーザー関数の出番です。
- Hageoyadi
- ベストアンサー率40% (3145/7860)
=PHONETIC(A1) 単に振り仮名を振る関数です。 で「かな」か「カナ」にする設定は 書式→振り仮名→設定 で設定した内容が、設定の後からのみ有効になります。
お礼
ありがとうございます。 ただ、ふりがなではなく、すでにカタカナとして入力された文字を、ひらがなに変換する方法を知りたかったのです。 CSV形式で送られたデータで、すでにカタカナで振り仮名が入力されていたファイルの場合です。 Accessなら更新クエリーでstrConv関数を使って変換できるのですが。
お礼
ありがとうございます。 PHONETIC関数では、漢字やひらがなもすべてひらがな(振り仮名をひらがなにした場合)になってしまいます。 一応、カタカナの部分だけをかなにする方法を知りたかったのですが。(漢字等はそのまま) でも、すべてカタカナのセルには有効なので、活用させていただきます。