PR

【VBA】印刷倍率/用紙サイズ/印刷の向きを設定する

これで楽に!?VBA活用
記事内に広告が含まれています。

こんにちは、Ryoです。
VBAで集計やデータ収集などを実行した後、結果をプリントアウトしたいこともあるかと思いますが、その際に印刷するだけでなく、様式や用途によって倍率を変更したり、サイズや印刷の向きを設定する必要が出てきます。

そんな時に手動でページや印刷設定をしなくてもVBAで処理できますので、今回はその内容について書いてみたいと思います。

スポンサーリンク

1.サンプル概要

今回記事内に用いる表などを予めExcelシートに書いたものが下の画像です。
これを「印刷倍率70%」「横向き」「A4」として設定し、プレビューさせてみます。

◆実行前

◆実行後

このように設定が反映され、プレビュー表示されます。
ページ設定を確認してみると。。。

設定した「印刷倍率70%」「横向き」「A4」が反映されています。
では次にサンプルコードです。

2.サンプルコード

Sub Sample1()

  With Worksheets("Sheet1")
       .PageSetup.Zoom = 70 '倍率70%
       '印刷の向きを「横向き」
       .PageSetup.Orientation = xlLandscape
    '用紙サイズを「A4」
       .PageSetup.PaperSize = xlPaperA4
    '印刷プレビューを実行
       .PrintPreview
    '印刷を3部実行
       .PrintOut Copies:=3
  End With

End Sub

◆印刷倍率

先ず順を追って説明しますが、印刷倍率を設定する場合はZoomプロパティを使います。

オブジェクト.Zoom=倍率指定(10~400%)

これが構文になりますが、ページ設定するので記述としては、Worksheets(“Sheet1”) .PageSetup.Zoom = 70 の形になります。

サンプルコードはWithを使って重複するWorksheets(“Sheet1”)を省いていますが、Withを使わない場合は上述のように記述します。

◆印刷の向き

印刷の向きを設定する場合はOrientationプロパティを使います。

オブジェクト.Orientation = 定数

この構文に対し、ページ設定を行うのでWorksheets(“Sheet1”)
.PageSetup.Orientation = xlLandscapeと記述します。

【xlPageOrientationの定数】

定数 説明
xlLandscape 横向き
xlPortrait 縦向き

◆用紙サイズ

用紙サイズを設定する際はPaperSizeプロパティを使います。

オブジェクト.PaperSize = 定数

これが構文ですが、同様にページ設定しますのでWorksheets(“Sheet1”).PageSetup.PaperSize = xlPaperA4と記述します。

【xlPaperSizeの定数】

定数 説明
xlPaperA4 A4(210mm×297mm)
xlPaperA5 A5(148mm×210mm)
xlPaperA3 A3(297mm×420mm)
xlPaperB5 B5(182mm×257mm)
xlPaperB4 B4(250mm×354mm)

◆プレビュー、印刷

サンプルコードではプレビューを表示させていますが、特に印刷前の確認などが必要なければ記述しなくても問題ありません。

プレビューを行う場合はPrintPreviewメソッドを使います。

オブジェクト.PrintPreview(EnableChanges:=False 又は True)

サンプルコードではWorksheets(“Sheet1”).PrintPreviewの部分です。
引数のEnableChangesはプレビュー時の印刷設定で変更を出来る/出来ないを指定するもので、Worksheets(“Sheet1”).PrintPreview := Falseとすれば変更出来なくなります。
この部分は省略可能ですから、用途に応じて使い分けたら良いと思います。

印刷についてはPrintOutメソッドを使います。
構文などの詳細は今回割愛しますが、サンプルコードで記述している.PrintOut Copies:=3は例として印刷を実行し3部印刷するという指定です。

このCopiesは省略すると印刷部数が1になりますから、ここも必要に応じて使い分けですね。

本サンプルコードを実行するとプレビューが表示され、閉じると印刷が実行されます。

3.まとめ

今回は倍率や用紙サイズ、向きの設定を主に書きましたが、実運用上では印刷前に確認メッセージを出すなどの処理も加えると、より良くなると思います。
特に記述上難しいこともありませんので、印刷までまとめてVBAで処理してしまうと更に効率化できますから、機会があれば参考にしてみてくださいね。




以上、印刷倍率/用紙サイズ/印刷の向きを設定する方法についてでした!
今回の記事が何かの参考になれば幸いです。

Ryo

タイトルとURLをコピーしました