|
こんにちは。
結合セル範囲が限定されている場合は、比較的簡単なのですが...
例えば、A1:C10の範囲で、1行×3列の3セルずつ結合している場合、
Sub try()
Dim n As Single
Dim x As Single
Dim i As Long
ActiveSheet.DisplayAutomaticPageBreaks = False
With Range("A1:C10")
n = .Item(1).ColumnWidth
x = n
For i = 2 To 3
x = x + .Item(i).ColumnWidth
Next i
.UnMerge
.Item(1).ColumnWidth = x
.EntireRow.AutoFit
.Merge across:=True
.Item(1).ColumnWidth = n
End With
End Sub
こんな感じになります。
考え方としては、
1)A1セル幅を変数 n に記憶。
2)結合範囲であるA1:C1までの幅をそれぞれ足していき変数 x に記憶。
3)いったん、結合解除。
4)A1セル幅を記憶しておいた x まで広げる。(結合セル幅にする)
5)AutoFit。
6)再び横方向結合。
7)A1セル幅を記憶しておいた n に戻す。
結合セル範囲が複雑に混在している場合、工夫すればできそうですが、
面倒そうなので、あまり考えたくないです。
|
|