• 締切済み

VBAなのですが、B列にカタカナが入っているとする場合、C列にローマ字を自動入力したい。

【質問】 Excel(VBA)で下のようにデータがある場合、C列のローマ字の場所とD列の英字の場所へ、B列のフリガナを参照して自動入力したいのですが、どのようにすればよいのでしょうか。 欲を言うと、ローマ字・英字の先頭の文字は大文字が良いです。 --------------------------------------------------  名前     フリガナ     ローマ字  英字 -------------------------------------------------- 相田 章  アイダ ショウ 飯田 香  イイダ カオリ 石狩 鍋  イシカリ ナベ 石川 梓  イシカワ アズサ 渡 哲也  ワタリ テツヤ -------------------------------------------------- VB初心者なのでよろしくおねがいします。

みんなの回答

  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.2

こんにちは。 今から、再度、書く気がしないのですが、ここのスレッドを丹念にお読みください。 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) とでもしてください。

VBviginner
質問者

補足

Wendy02さんどうもありがとうございます。 過去の履歴を検索してみたのですが引っかからず。。。 たしかに同じ事を聞いていますね。 しかーし。。 初心者の私には難しくて頭が爆発しそうです。 丹念に読んで分からなかったらまた、ここに補足で質問しますので、よろしくお願いします。

回答No.1

こんにちは。 スマートな方法かどうかは置いといて・・・(汗 こんなんでどうでしょうか? 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 動作保証はしてませんので(汗 名前はループを付け足してもらえれば良いかと思います。 もっと良い案がある方は是非。

関連するQ&A

専門家に質問してみよう