こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

エクセルで選択したセルの内容を合体したい

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

投稿日時 - 2007-08-22 18:03:20

QNo.3277160

すぐに回答ほしいです

質問者が選んだベストアンサー

とりあえずこんな感じで動くと思います。
名字が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で動作確認済

投稿日時 - 2007-08-22 19:56:15

お礼

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

投稿日時 - 2007-08-22 20:36:09

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問