• ベストアンサー

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

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

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

  • ベストアンサー
noname#52504
noname#52504
回答No.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で動作確認済

yamutya
質問者

お礼

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