1

私が持っているもの

Excel 2007 ワークシート。同じブック内の複数のシートの範囲 A1:C48 (固定) の情報。

必要なもの

この選択範囲をレター サイズの用紙に通常の余白で印刷する必要があります。しかし、条件は、選択範囲の幅、つまり 3 列を 1 ページに合わせる必要があるということです。一定のフォント サイズを維持するには、列の幅を一定に保つ必要があります。これをVBAで実現したいと考えています。

これが私が試したコードです:

Sub printing()
    Dim w1 As Single, w2 As Single, w3 As Single
    Application.ScreenUpdating = False
    w1 = 62
    w2 = 24.71
    w3 = 22.14
    For i = 1 To ActiveWorkbook.Worksheets.Count
    Worksheets(i).Activate
    ActiveSheet.Columns(1).ColumnWidth = w1
    ActiveSheet.Columns(2).ColumnWidth = w2
    ActiveSheet.Columns(3).ColumnWidth = w3

    ActiveSheet.Range("A1:C48").Select

    With Worksheets(i).PageSetup
        .PaperSize = xlPaperLetter
        .Zoom = False
        .FitToPagesWide = 1
        .FitToPagesTall = 1
        .LeftMargin = Application.InchesToPoints(0.5)
        .RightMargin = Application.InchesToPoints(0.75)
        .TopMargin = Application.InchesToPoints(1.5)
        .BottomMargin = Application.InchesToPoints(1)
        .HeaderMargin = Application.InchesToPoints(0.5)
        .FooterMargin = Application.InchesToPoints(0.5)
    End With
    Next i
    Application.ScreenUpdating = True
End Sub

これにより列のサイズが変更され、他のプロパティが設定されますが、改ページはそのままで、印刷しようとすると列4も含まれます。文字のサイズが変更されるため、改ページを手動でドラッグしたくありません。通常の余白のある便箋に収まるように列幅を設定したいと思います。

提案があれば本当に感謝します。

4

1 に答える 1

1

私が正しく理解していれば、あなたが望むのはPageSetup.PrintAreaプロパティだと思います。以下を追加できます。

.PrintArea= "$A$1:$C$48"

withブロックに。

于 2012-07-09T16:00:56.573 に答える