• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:excel ひらがな文を半角カタカナに変換したい 2)

excel ひらがな文を半角カタカナに変換する方法

このQ&Aのポイント
  • excel2000で、ある列にひらがな入力された文があります。違う列にそのひらがな入力された文を半角カタカナにして表記したいのですが、何か良い方法はありますか?関数やVBA、何でも良いので、教えてください!
  • ユーザー定義関数を作成し利用するのが良いですね。標準モジュールへ記述してください。Function KanConv(strText As String) As String StrText = Application.GetPhonetic(strText) KanConv = StrConv(strText, vbNarrow) End Function
  • 作成した関数は、すでに入力された文字が全角100文字以内でないと変換されないため、100文字を超える場合は空欄になってしまいます。この問題を解決する方法を教えていただけないでしょうか?

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

  • ベストアンサー
  • freetaka
  • ベストアンサー率53% (106/197)
回答No.3

知らないうちにこんな事になってたんですね^-^; 最初に回答したほうに補足ついてたの 気づきませんでした・・・ とりあえず修正してみましたが なにせ休憩中の短時間でやったので汚いコードはご容赦 職場にあるExcel2007でしかテストしてませんので Excel2000でテストしてみてください Function KanConv(strText As String) As String Dim strLen As Integer Dim strTexts(100) As String 'よくわからないので1万文字まで Dim i As Integer Dim strTmp As String strLen = (Len(strText) / 100) For i = 0 To strLen strTexts(i) = Application.GetPhonetic(Mid(strText, (i * 100) + 1, 100)) strTmp = strTmp & StrConv(strTexts(i), vbNarrow) Next i KanConv = strTmp End Function

milktea_ca
質問者

お礼

何度も、すみません。 お忙しいのに・・・ ありがとうございます!! 私自身、前の質問が最後になると思っていたもので・・・。 初OKWAVEで、使い方もわからずで・・・。 見ていて頂いてて、よかったです。 今、テストしてみたところ 問題が解消されました!! うれしいです!! 本当にありがとうございますっ また、また、何かありましたら、お願いします。 答えて頂いた方々、ありがとうございました!!

milktea_ca
質問者

補足

度々度で、本当にすみません。 数字の問題が出てきて、しまいました。 全角数字を半角カタカナに変更することは可能なのでしょうか?? 例 100 → ヒャク   253 → ニヒャクゴジュウサン   お時間が、あるときで構いませんので お答え、お願いします。

その他の回答 (3)

  • freetaka
  • ベストアンサー率53% (106/197)
回答No.4

フリガナですが MS-IMEから引いてきているので おそらくカタカナに変換されるのは もともとIMEの辞書に登録されているもので 「100」とかなら「ヒャク」と2007では出ました 試しに辞書登録をしてみたところやはり変換はされないようです VBAあたりで数字をカタカナに置き換えることもできなくはないですが かなり長いコードになりそうな感じですね ここらへんが簡単にやるには限界でしょうか^-^;

milktea_ca
質問者

お礼

調べていただいて、ありがとうございます!! そう言って、頂けて すっきりしました。 作って頂いた、VBAだけでも充分に作業がはかどるようになったので 本当に感謝です。 またまたまたまたまた、何かありましたら お願い致します!!

  • A88No8
  • ベストアンサー率52% (836/1606)
回答No.2

こんにちは >すでに入力された文字が、全角100文字以内でないと変換されないのです。  試してみたところ確かにその通りの結果になりました。  ふりがなを抽出する制限に100文字が絡んでいるようです。  エクセルで入力されたデータではない(CSVファイルとのことなので漢字ひらがなに「ふりがな」情報はない)なら、「strText = Application.GetPhonetic(strText) 」の行頭にアポストロフィー「'」かコメント文「REM」を付加して無効にしたらいかがでしょう?

  • Chary_spy
  • ベストアンサー率40% (75/183)
回答No.1

その100文字とは、本当に100文字なのでしょうか? 100文字目の後に改行マーク(LFなどのマーク)が入っていたり、100文字に整形して、渡していませんか?