- ベストアンサー
エクセルで選択したセルの内容を合体したい
エクセルで a1セルに 山田太郎 a2セルに 山田花子 a3セルに 山田次郎 と入っています。この3つのセルを選択した状態でvbaを実行してa1セルだけに 山田太郎・花子・次郎 と入力させたいのです。 苗字の長さは2文字限定で十分です(欲を言えば1文字3文字でも選択できればいいのですが)さてどうするのかお分かりの方お教えください。
- みんなの回答 (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で動作確認済
お礼
すばらしいですね。 即答ありがとうございました。