2-19.セルの結合(実際にはこんな使い方かな?)
2-18.セルを結合する基礎編では、決まった範囲を結合する例だったけど、実際は同じもが入力されている範囲のセルを複数結合することが多いでしょう。
こんな感じかな
実行前 |
→ | マクロ実行後 |
マクロ例
Sub セルの結合() Dim i, j As Integer Application.DisplayAlerts = False i = 3 Do Until Cells(i, 2).Value = "" j = 1 Do Until Cells(i, 2).Value <> Cells(i + j, 2).Value j = j + 1 Loop Range(Cells(i, 2), Cells(i + j - 1, 2)).Merge i = i + j Loop End Sub |
まず、最初のDo Until は文字が入力されていないセルまで繰り返し。
次は、Do Until は同じ文字が入力されていないセルまで繰り返し。
同じセルが入力されていないセルまで実行したら、同じ文字が入力されているセルは、実行された一つ前のセルだから(下線部の箇所)
Range(Cells(i, 2), Cells(i + j - 1, 2)).Merge
その範囲を結合。それを空白セルまで繰り返す
i = i + j
これは、次のグループの先頭(bの場合は 6 cの場合は 9 ということになる)の計算だよね