
横並びの文字列を結合する Excel2013 マクロ講座 67b回
名簿などのデータベースでは、管理しやすいように別々のセルに分けてデータを入力してあります。
そのデータを他で利用したい時に、全部まとめてひとつの文字列にしたいなどというケースがありますが、
手作業では大変ですし、関数を使っても大量に結合する場合は面倒です。
そこで今回は、横並びの文字列をマクロで結合しましょう。
またデータ数が相当ある場合を想定して、範囲の行数が何行あるかをマクロで取得します。
(サンプルファイルは、こちらから マクロ67b回サンプルデータ)



For i = 1 To Selection(Selection.Count).Row
実行したい処理
Next i

For Each 範囲 In Range(Cells(i, 1), Cells(i, 4))
結合文字 = 結合文字 & 範囲.Text & " "
Next 範囲
Cells(i, 5).Value = 結合文字
Sub 選択範囲の文字列結合4()
'半角スペースで区切り
Dim 結合文字 As String
Dim 範囲 As Range
Dim i As Integer '行数が3万を超えるならLongで
For i = 1 To Selection(Selection.Count).Row
結合文字 = ""
For Each 範囲 In Range(Cells(i, 1), Cells(i, 4))
結合文字 = 結合文字 & 範囲.Text & " "
Next 範囲
Cells(i, 5).Value = 結合文字
Next i
End Sub
あらかじめショートカットキーのCtrl + Shift + ↓ で最終行までを選択しておいてから、マクロを実行します。
Sub 範囲を選択しない文字結合5()
'半角スペースで区切り 範囲を選択しないでOK
Dim 結合文字 As String
Dim 範囲 As Range
Set 範囲 = ActiveSheet.UsedRange
Dim i As Integer
For i = 1 To 範囲.Rows.Count
結合文字 = ""
For Each 範囲 In Range(Cells(i, 1), Cells(i, 4))
結合文字 = 結合文字 & 範囲.Text & " "
Next 範囲
Cells(i, 5).Value = 結合文字
Next i
End Sub