「みんな教えて! 選手権!!」開催のお知らせ

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

A 回答 (2件)

こんにちは。



今から、再度、書く気がしないのですが、ここのスレッドを丹念にお読みください。

http://oshiete1.goo.ne.jp/kotaeru.php3?q=1450971
OKWeb側だっら読み替えてください。

私のは、ユニークで、質問者さんのリクエストに従って、苦心して特殊ヘボン式で作りましたが、一般のものは、以下でよいと思います。

http://park11.wakwak.com/~miko/Excel_Note/15-03_ …

はっきり言って、ローマ字は、ヘボン式・訓令式・外務省式・旧国鉄式・日本のローマ字社式(ISO)や、各社で作っている慣例などがあって、ひじょうにすごく難しいです。おまけに、多くは、仕様書がない状態です。

>後は、英字の先頭の文字は大文字が良いです。

wakwak.com 側の場合は、

kana2roma = retStr
  ↓
kana2roma = _
StrConv(Left$(retStr, 1), vbUpperCase) & Mid$(retStr, 2)

とでもしてください。

この回答への補足

Wendy02さんどうもありがとうございます。
過去の履歴を検索してみたのですが引っかからず。。。

たしかに同じ事を聞いていますね。
しかーし。。
初心者の私には難しくて頭が爆発しそうです。

丹念に読んで分からなかったらまた、ここに補足で質問しますので、よろしくお願いします。

補足日時:2005/09/29 09:21
    • good
    • 0

こんにちは。


スマートな方法かどうかは置いといて・・・(汗
こんなんでどうでしょうか?

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

動作保証はしてませんので(汗
名前はループを付け足してもらえれば良いかと思います。

もっと良い案がある方は是非。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報