pageSetUpオブジェクト内で改行まで完結させたいのですが、うまくいっていません。
お教えください。
ResetAllPageBreaks
とすべてクリアすると初期値の列改ページがばらつきがあり、columnWidth
で列幅を揃えましたがそれでもシートごとに列改ページ(青線)が変わっているので止む無く、pageSetUp
のprintArea
プロパティで列を指定しました(例: "A:AS")。
printAreaを指定すると行数に関係なく1枚に収まる設定になっており、どのようにすれば改ページ出来るかで悩んでいます。
やってみたこと
-
FitToPagesWide
でページ数を設定(数指定が決まっていて多めに設定)=>効いていない。ドキュメントには書いていないがprintArea
との併用は無理なのかもしれない。 -
with文
pageSetUp
を抜けた後にpageBreak
オブジェクトを設定(printAreaで列は設定されたので後は行の改行だけ)=>改行が出来ない。(手動で「ファイル」、「印刷」、「シートを1ページに印刷」から「すべての列を1ページに印刷」なら変更できる)
pageSetUp
は印刷設定を自由に設定することが出来るので使い勝手が良いと感じますが、改行だけがネックになっています。
うまくいく方法を宜しければお教えください。
vba
1Sub 報告書の印刷範囲を指定する() 2 Dim reportFolderPath As Variant 3 Dim reportObj As Object 4 Dim reportWb As Workbook 5 Dim reportWs As Worksheet 6 Dim i As Integer 7 8 reportFolderPath = "C:\Users\masas\Documents\sample報告書-完成\" 9 10 With CreateObject("Scripting.FileSystemObject") 11 For Each reportObj In .getfolder(reportFolderPath).Files 12 Set reportWb = Workbooks.Open(reportObj) 13 For Each reportWs In reportWb.Worksheets 14 endRows = reportWs.Cells(Rows.count, 1).End(xlUp).Row 15 For i = 1 To 46 16 reportWs.Columns(i).ColumnWidth = 1.29 17 Next i 18 reportWs.ResetAllPageBreaks 19 With reportWs.PageSetup 20 .PrintArea = "A1: AS" & endRows '"A:AS"から変更 21 .Zoom = False 22 '.FitToPagesTall = 1 23' .FitToPagesWide = 10 24' .LeftMargin = Application.InchesToPoints(0.8) 25' .RightMargin = Application.InchesToPoints(0.3) 26' .BottomMargin = Application.InchesToPoints(0.8) 27 28 End With 29 For i = 50 To endRows Step 50 30 'reportWs.Columns(46).VPageBreak = xlPageBreakManual 31 reportWs.Cells(i, "AT").PageBreak = xlPageBreakManual 32 Next i 33 Next reportWs 34 Next reportObj 35 End With 36End Sub

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/06/08 10:31
2019/06/08 11:11
2019/06/08 11:25
2019/06/08 11:45
2019/06/08 11:50 編集
2019/06/08 12:30
2019/06/08 12:41 編集
2019/06/08 13:45
2019/06/08 13:57
2019/06/08 21:37
2019/06/09 04:54