« 改ページの追加・削除・位置取得 | トップページ | 複数のキーワードを含むセルを検索する »

2020年4月26日 (日)

印刷範囲の自動設定

シートの印刷範囲を指定していない状態で
印刷プレビューをすると
使用している範囲を自動で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

|

« 改ページの追加・削除・位置取得 | トップページ | 複数のキーワードを含むセルを検索する »

コメント

この記事へのコメントは終了しました。