水曜日, 6月 07, 2023

Excel VBA 19 
セルの連結と自動調整でデータ整理

セルの連結と自動調整でデータ整理する手順を整理しました。

関数での処理は以下を参考にしてください。データが少ない場合は関数処理が向いています。
ちなみに「フラッシュフィル」では4文字の県などのイレギュラーは対応出来ません。


用意したデータの[B列(名前1)]と[C列(名前2)] 、[I列(住所1)]と[J列(住所2)]を結合します。

----------------------------
Sub セル連結()
Dim x, y As Integer
Dim connect As String
    ' xとyは整数、connectは文字列
For x = 3 To 22
    ' xは3から22
connect = Range("B" & x).Value & Range("C" & x).Value
Range("B" & x).Value = Trim(connect)
    ' B3とC3を結合してB3列に入れる。
    ' Trimは引数stringで指定した文字列から先頭のスペースと、
    ' 末尾のスペースを削除した結果を返す。
Next
    ’ 22行まで繰り返す
Columns("C").Delete
Columns("B").AutoFit
    Rows("3:22").AutoFit
    ’ C列を削除し、B列を自動調整、3〜22行を自動調整
For y = 3 To 22
    ' yは3から22
connect = Range("G" & y).Value & Range("H" & y).Value _
& " " & Range("I" & y).Value
Range("G" & y).Value = Trim(connect)
    ' H3とI3とJ3を結合してI3列に入れる。
    ' Trimは引数stringで指定した文字列から先頭のスペースと、
    ' 末尾のスペースを削除した結果を返す。
Next
    ’ 22行まで繰り返す
Columns("H:J").Delete
Columns("G").AutoFit
    Rows("3:22").AutoFit
    ’ HとJ列を削除し、G列を自動調整、3〜22行を自動調整
End Sub
----------------------------
処理結果は完璧には成りません。
上は行の自動調整を忘れた結果です。かといって列が完璧にはなっていません。

上は行、列とも自動調整を行った結果です。やはり列が完璧にはなっていません

最終的には[ホーム]>[書式]にて手動調整ですね。

というコトで上が完成結果です。