エクセルで、データを縦列で自動で追加していくマクロを作ったのですが、
それに合わせて印刷範囲を自動で判別してくれる必要があり、色々と調べました。
目次
印刷範囲の設定
厄介なことに最終列を自動で判別するだけでなく、
印刷範囲の「開始行」と「最終行」は常に固定のため、数値でしておきたくて作成したのが以下の文です。
    Dim Start_Low As Long
    Dim Last_Col As Long
    
    '洗濯中のシートで処理
    With ActiveSheet
    
        '指定シートの開始行を指定(この場合は2行目のA列から)
        Start_Row = .Cells(2, "A").Row
        '指定シートの最終列を取得(34行目の最終列までを範囲に)
        Last_Col = .Cells(34, Columns.Count).End(xlToLeft).Column
        '印刷範囲を設定(34行目A列から開始行の最終列までを範囲指定)
        Pr_Area = .Range(.Cells(34, "A"), .Cells(Start_Row, Last_Col)).Address
        
    End With
    実際に使って印刷プレビューをしてみる
    Dim Start_Low As Long
    Dim Last_Col As Long
    With ActiveSheet
    
        '指定シートの開始行を指定(2行目のA列)
        Start_Row = .Cells(2, "A").Row
        '指定シートの最終列を取得(34行目の最終列まで)
        Last_Col = .Cells(34, Columns.Count).End(xlToLeft).Column
        '印刷範囲を設定(34行目A列から開始行の最終列までを範囲指定)
        Pr_Area = .Range(.Cells(34, "A"), .Cells(Start_Row, Last_Col)).Address
        'サイズはA3に
        .PageSetup.PaperSize = xlPaperA3
        '印刷向きは横向き
        .PageSetup.Orientation = xlLandscape
        '選択した「Pr_Area」を印刷範囲に
        .PageSetup.PrintArea = Pr_Area
        '水平の中央位置に
        .PageSetup.CenterHorizontally = True
        '垂直の中央位置に
        .PageSetup.CenterVertically = True
        
        ' 印刷プレビュー
        .PrintOut Preview:=True
        
        ' 印刷範囲の設定解除
        .PageSetup.PrintArea = False
        
    End With
    
 
			