教えて!ExcelVBA!

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

【ExcelVBA 印刷】印刷方向を設定する方法について教えて!

構文

構文は以下の通りです。

Worksheets("Sheet1").PageSetup.Orientation = xlPortrait / xlLandscape

解説

PageSetup.Orientationは、Excelの印刷設定を操作するためのプロパティです。このプロパティを使用することで、印刷時の用紙の向き(縦向きまたは横向き)を設定することができます。用紙の向きについては、以下いずれかの定数を指定します。

定数 内容
xlPortrait 用紙の向きを縦に設定
xlLandscape 用紙の向きを横に設定

使い方

以下に、具体的な使い方を紹介します。

サンプル1

Sub SetPrintOrientation()
    Worksheets("Sheet1").PageSetup.Orientation = xlLandscape
End Sub

上記のコードでは、SetPrintOrientationというサブルーチンを作成し、その中でPageSetup.Orientationプロパティを使用して印刷設定の向きを横向き(Landscape)に設定しています。

サンプル2

Sub SetPrintOrientation()
    ' シートの設定を変更するためにシートオブジェクトを取得
    Dim ws As Worksheet
    Set ws = Worksheets("Sheet1")
    ' 印刷設定の向きを縦向き(Portrait)に設定
    ws.PageSetup.Orientation = xlPortrait
    ' 印刷プレビューを表示
    ws.PrintPreview
End Sub

上記のコードでは、SetPrintOrientationというサブルーチンを作成し、その中でPageSetup.Orientationプロパティを使用して印刷設定の向きを縦向き(Portrait)に設定しています。また、印刷プレビューを表示することで、実際の印刷結果を確認することができます。

プログラミング例

以下に、具体的なプログラミング例を示します。この例では、ボタンをクリックすることで印刷設定の向きを切り替えます。

Sub ToggleOrientation()
    Dim ws As Worksheet
    Set ws = Worksheets("Sheet1")
    ' 現在の印刷設定の向きを取得
    Dim currentOrientation As XlPageOrientation
    currentOrientation = ws.PageSetup.Orientation
    ' 向きを切り替える
    If currentOrientation = xlPortrait Then
        ws.PageSetup.Orientation = xlLandscape
    Else
        ws.PageSetup.Orientation = xlPortrait
    End If
    MsgBox "印刷設定の向きが変更されました。"
End Sub

まとめ

PageSetup.Orientationプロパティを使用することで、印刷時の用紙の向きを設定することができます。印刷設定の向きを適切に設定することで、印刷物のレイアウトを調整することができます。