|
以下の要領で表を作っています。
・明細数:64
・1ページあたりの明細数:最初のページのみ12、以後は13
・1明細あたりの行数:6
・用紙サイズ:A3
・縮小率:37%
・行タイトル:1〜12行目
・印刷範囲:AY1からCU406まで
最初のページだけ明細数が違うのは、最初のページに合計欄などを設けているためです。
印刷範囲がAYからなのは、ひとつのシートに異なる表が存在するためです。
この条件でプレビューするところまでをマクロにするため、以下の通りコーディングしました。
'印刷範囲指定
Range("AY1:CU621").Select
ActiveSheet.PageSetup.PrintArea = "$AY$1:$CU$406"
ActiveWindow.View = xlPageBreakPreview
With ActiveSheet.PageSetup
.PrintTitleRows = "$1:$12"
.PrintTitleColumns = ""
End With
'ページ設定
ActiveSheet.PageSetup.PrintArea = "$AY$1:$CU$406"
With ActiveSheet.PageSetup
.LeftHeader = ""
.CenterHeader = ""
.RightHeader = ""
.LeftFooter = ""
.CenterFooter = ""
.RightFooter = ""
.LeftMargin = Application.InchesToPoints(0.393700787401575)
.RightMargin = Application.InchesToPoints(0.15748031496063)
.TopMargin = Application.InchesToPoints(0.490551181102362)
.BottomMargin = Application.InchesToPoints(0.31496062992126)
.HeaderMargin = Application.InchesToPoints(0.166850393700787)
.FooterMargin = Application.InchesToPoints(0.236220472440945)
.PrintHeadings = False
.PrintGridlines = False
.PrintComments = xlPrintNoComments
.PrintQuality = 600
.CenterHorizontally = False
.CenterVertically = False
.Orientation = xlLandscape
.Draft = False
.PaperSize = xlPaperA3
.FirstPageNumber = xlAutomatic
.Order = xlDownThenOver
.BlackAndWhite = False
.Zoom = 37
.PrintErrors = xlPrintErrorsDisplayed
End With
'改ページ設定
Set ActiveSheet.HPageBreaks(1).Location = Range("AY94")
Set ActiveSheet.HPageBreaks(2).Location = Range("AY172")
Set ActiveSheet.HPageBreaks(3).Location = Range("AY250")
Set ActiveSheet.HPageBreaks(4).Location = Range("AY328")
ActiveWindow.SelectedSheets.PrintPreview
これなら5ページ目までプレビューされるはずですが、実際は6ページできてしまいます。
しかも、改ページプレビューの青線が入る行は、
2ページ:94(仕様通り)
3ページ:172(仕様通り)
4ページ:250(仕様通り)
5ページ:328(仕様通り)
6ページ:340
となるので、最後の5ページ目が2明細しか印字せずに勝手に改ページ(?)してしまっています。
長ったらしい記述で恐縮ですが、おかしな点があればご指摘下さると幸いです。
|
|