シートの印刷範囲を指定していない状態で
印刷プレビューをすると
使用している範囲を自動でExcelが認識してくれます。
これを利用して
印刷範囲を自動設定したいと思います。
使用している範囲を取得するために
UsedRangeプロパティが使えそうですが,
図形を使用している場合に
印刷範囲の設定がうまくいかなくなる可能性があります。
理由として
UsedRangeはセルの内容で使っているかいないかを判断するようで,
図形がUsedRangeの範囲外にある場合に
UsedRangeを印刷範囲に使用すると図形が印刷範囲に入らないからです。
シートの印刷範囲を指定していない状態にするには
PrintAreaプロパティの値を""にします。
次のコードはアクティブシートの使用している範囲を
A4縦向き,1枚の幅にページ設定して印刷プレビューを表示します。
印刷範囲を自動設定するコード:
|
Sub macro20200426a() '印刷範囲 自動設定
Application.PrintCommunication = False
With ActiveSheet.PageSetup '印刷範囲をクリア .PrintArea = "" '余白 cm単位での設定 .LeftMargin = Application.CentimetersToPoints(0.6) .RightMargin = Application.CentimetersToPoints(0.6) .TopMargin = Application.CentimetersToPoints(1.9) .BottomMargin = Application.CentimetersToPoints(1.9) .HeaderMargin = Application.CentimetersToPoints(0.8) .FooterMargin = Application.CentimetersToPoints(0.8) '用紙の向き .Orientation = xlPortrait '縦 '用紙サイズ .PaperSize = xlPaperA4 'A4 '拡大縮小 シートを幅を1ページに合わせ印刷 .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 0 End With Application.PrintCommunication = True ActiveSheet.PrintPreview End Sub
|
使用Ver:Excel For Office365
コメント