|
またしても質問なのですが・・。
Excelのシートを一つの印刷ページに入れようとすると、
シートに書き込まれているデータが多い場合は、
データが縮小されて、印刷紙の左上に小さく印刷されます。
これでは見にくいので改ページさせたいセル位置をきめて
(例えば50,80,130など)
そこに改ページをいれようとしました。
データをシートにコピーすると自動的に改ページが書き込まれますので
まず、その改ページを解除して、手動改ページを挿入しようとしているのですが
やはり 印刷した場合に縮小され、印刷紙の左上に小さく印刷されて
具合が悪いです。
余白の設定を行えばよいのでしょうか??
自分が作成したコードは冗長で、あまり良いコードだと思えません。
上記のことをうまく実現するロジック等、教えていただけませんでしょうか。
Private Sub setpgBreak()
Set Ex = CreateObject("Excel.Application")
Set exNWBOOK = Ex.WorkBook.Open "D:\test.xls"
With exNWBOOK.Worksheets(1)
'改ページプレビュー表示
Ex.Windows(1).View = xlPageBreakPreview
'シートのすべてを印刷範囲に設定する
.PageSetup.PrintArea = ""
'すべての改ページを解除
.ResetAllPageBreaks
'シートの垂直な改ページを解除
For Each vPgBreak In .VPageBreaks
vPgBreak.DragOff Direction:=xlToRight, RegionIndex:=1
Next
On Error Resume Next
'シートの水平な改ページを解除
For Each hPgBreak In .HPageBreaks
hPgBreak.DragOff Direction:=xlDown, RegionIndex:=1
If Err Then
'↓ココで、「アプリケーション定義エラー」が発生する
Debug.Print Err.Description
End If
Next
'改ページ設定
arrPgBreakRow = Array(50,80,120,155)
For i = 0 To UBound(arrPgBreakRow)
.HPageBreaks.Add Before:=Cells(arrPgBreakRow(i), 1)
Next
End With
Set exNWBOOK = Nothing
Set Ex = Nothing
End Sub
|
|