これ何て呼びますか

エクセルで a1セルに 山田太郎 a2セルに 山田花子 a3セルに 山田次郎 と入っています。この3つのセルを選択した状態でvbaを実行してa1セルだけに   山田太郎・花子・次郎 と入力させたいのです。
苗字の長さは2文字限定で十分です(欲を言えば1文字3文字でも選択できればいいのですが)さてどうするのかお分かりの方お教えください。

A 回答 (1件)

とりあえずこんな感じで動くと思います。


名字が2文字でない場合にも対応してますが、共通部分の判定なので
「山田祐一」「山田祐二」の場合は「山田祐一・二」になっちゃいますね。

動作の概要
 選択したセル範囲の、各文字列の左からの共通部分(名字)の文字数を調べて、
 名字と、共通部分以外(名前)を順次連結して、
 先頭のセルに返す。

Sub さんぷる()
 名字 = Selection(1)
 名字数 = Len(名字)
 For i = 名字数 To 0 Step -1
  For Each セル In Selection
   If Left(セル, 名字数) <> 名字 Then
    名字数 = 名字数 - 1
    名字 = Left(Selection(1), 名字数)
    Exit For
   End If
  Next セル
 Next i
 戻値 = Left(Selection(1), 名字数)
 For Each セル In Selection
  戻値 = 戻値 & Right(セル, Len(セル) - 名字数) & "・"
 Next セル
 Selection(1) = Left(戻値, Len(戻値) - 1)
End Sub

↓2文字限定だとこれだけ

Sub さんぷる2()
 戻値 = Left(Selection(1), 2)
 For Each セル In Selection
  戻値 = 戻値 & Right(セル, Len(セル) - 2) & "・"
 Next セル
 Selection(1) = Left(戻値, Len(戻値) - 1)
End Sub

Excel2003で動作確認済
    • good
    • 0
この回答へのお礼

すばらしいですね。
即答ありがとうございました。

お礼日時:2007/08/22 20:36

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


おすすめ情報