- 締切済み
VBAなのですが、B列にカタカナが入っているとする場合、C列にローマ字を自動入力したい。
【質問】 Excel(VBA)で下のようにデータがある場合、C列のローマ字の場所とD列の英字の場所へ、B列のフリガナを参照して自動入力したいのですが、どのようにすればよいのでしょうか。 欲を言うと、ローマ字・英字の先頭の文字は大文字が良いです。 -------------------------------------------------- 名前 フリガナ ローマ字 英字 -------------------------------------------------- 相田 章 アイダ ショウ 飯田 香 イイダ カオリ 石狩 鍋 イシカリ ナベ 石川 梓 イシカワ アズサ 渡 哲也 ワタリ テツヤ -------------------------------------------------- VB初心者なのでよろしくおねがいします。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- Wendy02
- ベストアンサー率57% (3570/6232)
こんにちは。 今から、再度、書く気がしないのですが、ここのスレッドを丹念にお読みください。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1450971 OKWeb側だっら読み替えてください。 私のは、ユニークで、質問者さんのリクエストに従って、苦心して特殊ヘボン式で作りましたが、一般のものは、以下でよいと思います。 http://park11.wakwak.com/~miko/Excel_Note/15-03_celldata.htm#15-03-56 はっきり言って、ローマ字は、ヘボン式・訓令式・外務省式・旧国鉄式・日本のローマ字社式(ISO)や、各社で作っている慣例などがあって、ひじょうにすごく難しいです。おまけに、多くは、仕様書がない状態です。 >後は、英字の先頭の文字は大文字が良いです。 wakwak.com 側の場合は、 kana2roma = retStr ↓ kana2roma = _ StrConv(Left$(retStr, 1), vbUpperCase) & Mid$(retStr, 2) とでもしてください。
- kerorin9999
- ベストアンサー率22% (10/44)
こんにちは。 スマートな方法かどうかは置いといて・・・(汗 こんなんでどうでしょうか? Sub main() Dim a As String Dim baff As String Dim i As Integer Dim strName strName = "" a = "アイダ ショウ" For i = 1 To Len(a) baff = Left(a, 1) a = Right(a, Len(a) - 1) strName = strName & ascii(baff) If i = 1 Then strName = UCase(strName) End If Next End Sub Function ascii(strBaff As String) As String Select Case strBaff Case "ア" ascii = "a" Case "イ" ascii = "i" ・ ・ ・ Case "ン" ascii = "nn" End Select End Function 動作保証はしてませんので(汗 名前はループを付け足してもらえれば良いかと思います。 もっと良い案がある方は是非。
補足
Wendy02さんどうもありがとうございます。 過去の履歴を検索してみたのですが引っかからず。。。 たしかに同じ事を聞いていますね。 しかーし。。 初心者の私には難しくて頭が爆発しそうです。 丹念に読んで分からなかったらまた、ここに補足で質問しますので、よろしくお願いします。