ExcelVBA 印刷時に出力するページ範囲や特定のシートのページ設定を操作する機能。手動での印刷設定を効率よく自動化できます。使い方や注意点など、サンプルコードをもとに具体的に解説します。
日常業務でExcelを多用し、手動作業を減らしたいと考えている方へ
本サイト参考:Excel VBAで自動化するコードのベースを習得したい方におすすめの記事
以下のようなシーンで利用で表示します。
1.印刷範囲の設定
特定のデータだけを印刷する。
2.ページの順序や範囲を指定
必要なページだけ印刷する。
3.複数シートを一括で印刷設定
複数のシートで同じページ設定を適用する。
以下の操作が可能です。
1.印刷範囲を設定
PageSetup.PrintArea プロパティを使用
2.印刷するページを指定
PrintOut メソッドで範囲指定
3.ページ番号や倍率を調整
PageSetup オプションを利用
1.印刷範囲の設定ミス
範囲指定が間違っていると正しいデータが印刷されない。
2.ページ順序に注意
ページ番号はExcelでのレイアウト順に従うため、注意が必要
3.複数シートの操作
シートごとの設定が必要な場合、ループ処理が求められる。
基本的な文法やVBAの実践的な応用までを網羅的に学習できる方法は、ExcelVBAエキスパート資格の取得を目指すこと。学習を通して、より効率的に、着実に基礎を身につけることが可能です。資格取得すれば、スキルの証明にもなり、職場での評価アップにも繋がるため、勉強を進めるモチベーションにもなります。
本サイト参考:マクロ知識がないから「何から学べば良いのかわからない」という人におすすめの記事
Option Explicit
Sub SetPrintAreaAndPrint()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
' 印刷範囲を設定
ws.PageSetup.PrintArea = "$A$1:$D$20"
' 印刷(プレビュー)
ws.PrintPreview
End Sub
特定のページ範囲を印刷
Option Explicit
Sub PrintSpecificPages()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
' ページ範囲を指定して印刷
ws.PrintOut From:=1, To:=2 ' 1ページ目から2ページ目まで印刷
End Sub
複数シートのページ設定を一括で適用
Option Explicit
Sub SetPageSettingsForAllSheets()
Dim ws As Worksheet
For Each ws In ThisWorkbook.Sheets
With ws.PageSetup
.Orientation = xlLandscape ' 横向き
.Zoom = False
.FitToPagesWide = 1 ' 横1ページに収める
.FitToPagesTall = 1 ' 縦1ページに収める
End With
Next ws
MsgBox "すべてのシートにページ設定を適用しました。"
End Sub
特定のシートを印刷
Option Explicit
Sub PrintSpecificSheet()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet2")
' 指定シートを印刷
ws.PrintOut
End Sub
印刷プレビューを表示
Option Explicit
Sub ShowPrintPreview()
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets("Sheet1")
' 印刷プレビューを表示
ws.PrintPreview
End Sub
「ページ指定」を活用すると、特定の範囲やシート、ページを効率的に印刷できるようになります。VBAを使うことで、日常の印刷作業が格段に楽になり、設定ミスも減らせます。
Excel VBAで自動化するコードのベースを習得したい方におすすめ!
VBAエキスパート資格は、日常業務でExcelを多用し、手動作業を減らしたいと考えている方には価値あるものです。
ExcelVBAエキスパートベーシック
仕事の効率をあげるためにExcelVBAを利用する人が対象の問題集です。
ExcelVBAエキスパートスタンダード
ExcelVBAの開発を仕事にする人が対象の問題集です。
Excel VBA エキスパート資格について知りたい方は、下記「Excel VBAスキルアップを目指すなら知っておきたいVBAエキスパート」をご確認ください。