教えて!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プロパティを使用することで、印刷時の用紙サイズを設定することができます。是非活用してください。