|
▼アキさん さん:
こんにちは
以下のコードでお試しください。
なお、あわせて、先に申し上げた、不要、あるいは別の書き方ができるActivateやSelectを
なくしてあります。実行時の画面のちらつきがおさえられると思います。
Sub Sample()
' 水平方向の改ページ位置を結合セル内から外し、上に調整移動する
'----------------------
Const TargetCol = "A" ' <--- 改ページに反映させる結合のある列を指定
'----------------------
Dim Hpb As Long
Dim Rw As Long
Application.ScreenUpdating = True ' False禁止
Cells.SpecialCells(xlCellTypeLastCell).Offset(1).Activate
If HPageBreaks.Count = 0 Then Exit Sub
ActiveSheet.ResetAllPageBreaks
Hpb = 1
Do Until Hpb > HPageBreaks.Count
Rw = HPageBreaks(Hpb).Location.Row
If Cells(Rw, TargetCol).MergeArea.Row < Rw Then
HPageBreaks.Add before:=Cells(Rw, TargetCol).MergeArea
End If
Hpb = Hpb + 1
Loop
ActiveSheet.PrintOut 'Preview:=True
End Sub
|
|