- 締切済み
エクセルでの漢字(全角ひらがな・全角カタカナ含む)→半角カタカナへの変換について
お世話様です。 質問です。 たとえば、「今日のニューヨークは晴れです」という文章を 「キョウノニューヨークハハレデス」というように、半角カタカナに一発で変換することは可能でしょうか? 仕事で商品などを登録する際に半角カタカナでの入力が原則なので、 ひとつひとつ手作業で変換するのは非常に時間がかかってしまいます。 ほかのデータから引っ張ってくることが多いので、phonetic関数は使えないようです。 現在は先輩の作った変換FMがあるのですが、別途立ち上げる必要がありますし、データが重いので会社の貧弱なスペックのパソコンではすぐフリーズしてしまいます。 できれば、A1に「今日のニューヨークは晴れです」とあれば、B1に自動で「キョウノニューヨークハハレデス」と表示されると楽なのですが・・・ 何かいい方法をご存知の方がいらっしゃれば教えていただきたいです。 よろしくお願いいたします。
- みんなの回答 (3)
- 専門家の回答
みんなの回答
- imogasi
- ベストアンサー率27% (4737/17069)
VBAを経験して無いだろうが、小数行数のコードなので上げておく。 例データ 今日のニューヨークは晴れです 今日は秋田の山で初雪が降った。 ーー テストするには、メモ帳ででも、上記文章を作り、エクセルのセルにコピペすること。<=ほかのデータから引っ張ってくることが多いので、phonetic関数は使えないようです。<=良く判りましたね。この点からの注意事項です。 ーーー VBAコード 標準モジュールに Sub test01() For i = 1 To 2 x = Cells(i, "A") Cells(i, "B") = StrConv(Application.GetPhonetic(x), vbNarrow) Next i End Sub ーーーー 半角カナにしている。Application.GetPhonetic(x)だけだと全角に なるようだ。 ーー 結果 キョウノニューヨークハハレデス キョウハアキタノヤマデハツユキガフッタ。 ーーー !!!この変換は絶対ではない。再度良く人間がチェックのこと。 でも大幅省力化になると思う ーーー ユーザー関数化するには 標準モジュールに Function kana(a) kana = StrConv(Application.GetPhonetic(a), vbNarrow) End Function ーー セルでは=kana(A1)と入れる。 === VBAに関連したことは、ちょっとだけ勉強のこと。 下記語句などでWEB照会して勉強。 VBE画面 VBA 標準モジュール ユーザー関数 For Next 最下行を捉える VBA Cells Application.GetPhonetic などGoogleででも照会のこと。沢山記事が出るだろう。
お礼
早速の返答ありがとうございます。 確かに先輩の変換FMはVBEを使って変換しているようですので、 このような返答がくるだろうと予想はしていました。 自分でも作れるようになれば一番なのですが、今の私には少し敷居が高いようです。。。 もう少しVBEの基本を勉強してから実践してみようと思います。 それまでは、使いにくいですが、先輩FMを使います(++)