教えて!ExcelVBA!

ExcelVBAの基礎知識・書き方について紹介します。

【ExcelVBA 印刷】印刷する用紙サイズを設定する方法について教えて!

構文

構文は以下の通りです。

Worksheet.PageSetup.PaperSize = サイズ定数

解説

PageSetup.PaperSizeプロパティは、印刷時に使用される用紙のサイズを設定するためのプロパティです。用紙サイズはVBAで定義された定数を指定することで設定できます。Worksheetはシートオブジェクトを指し、PageSetupはそのシートの印刷設定を管理するオブジェクトです。PaperSizeはPageSetupオブジェクトのプロパティであり、サイズ定数には指定したい用紙サイズの定数を指定します。指定する定数を幾つか紹介します。
・xlPaperA3           ' A3サイズ
・xlPaperA4           ' A4サイズ
・xlPaperA5           ' A5サイズ
・xlPaperB4           ' B4サイズ
・xlPaperB5           ' B5サイズ
・xlPaperExecutive    ' エグゼクティブサイズ
・xlPaperFolio        ' フォリオサイズ
・xlPaperLegal        ' リーガルサイズ
・xlPaperLetter       ' レターサイズ
・xlPaperTabloid      ' タブロイドサイズ

使い方

具体的な使い方を説明します。

Sub SetPaperSize()
    Dim ws As Worksheet
    Dim ps As PageSetup
    ' シートを選択(適宜、処理したいシート名に変更してください)
    Set ws = ThisWorkbook.Worksheets("シート名")
    ' PageSetupオブジェクトを取得
    Set ps = ws.PageSetup
    ' 用紙のサイズを指定(適宜、設定したい用紙の値に変更してください)
    ps.PaperSize = xlPaperA4
    ' 画面に印刷プレビューを表示
    ws.PrintPreview
End Sub

上記のコード中の「シート名」や「xlPaperA4」の部分を、処理したいシートの名前や設定したい用紙サイズに適切に変更します。例えば、用紙サイズをA4に設定したい場合は、ps.PaperSize = xlPaperA4の部分を記述します。

プログラミング例

以下に、具体的なプログラム例を紹介します。

Sub SetPaperSize()
    Dim ws As Worksheet
    Dim paperSize As XlPaperSize
    ' シートオブジェクトを取得
    Set ws = ThisWorkbook.Worksheets("Sheet1")
    ' A1セルの値に応じて用紙サイズを設定
    Select Case ws.Range("A1").Value
        Case "A4"
            paperSize = xlPaperSizeA4
        Case "Letter"
            paperSize = xlPaperSizeLetter
        Case "Legal"
            paperSize = xlPaperSizeLegal
        Case Else
            paperSize = xlPaperSizeA4
    End Select
    ' 用紙サイズを設定
    ws.PageSetup.PaperSize = paperSize
End Sub

まとめ

PageSetup.PaperSizeプロパティを使用することで、印刷時の用紙サイズを設定することができます。是非活用してください。