VBAで自動化 VBA一覧 ファイル・印刷操作 印刷設定

【VBA】印刷設定の方法と活用例

Excel VBAを使うと、シートの印刷設​​定を自動化できます。
例えば、特定の範囲だけを印刷する、用紙サイズを設定する、モノクロ印刷を指定する、ヘッダーやフッターを設定するなど、さまざまな制御が可能です。

この記事では、Excel VBA での印刷設定の基本から応用テクニックまで解説します

基本的な印刷メソッド

Excel VBAで印刷する場合は、PrintOutメソッドを使用します。

✅PrintOutの基本構文

Worksheet.PrintOut(From, To, Copies, Preview, ActivePrinter, PrintToFile, Collate, PrToFileName)

引数説明省略時の値
From開始ページ番号
To終了番号
Copies印刷部数1
PreviewTrueにすると印刷プレビューを表示False
ActivePrinter使用するプリンターの名前インタープリンター
PrintToFileTrueにするとファイルとして出力False
CollateTrueで単位に印刷True
PrToFileNamePrintToFile=Trueのときの保存ファイル名なし

✅ シート裏面印刷

Sub PrintSheet()

ActiveSheet.PrintOut

End Sub

📌シート全体をデフォルトのプリンターで印刷!

✅指定ページだけ印刷

Sub PrintSpecificPages()

ActiveSheet.PrintOut From:=1, To:=2

End Sub

📌 1~2ページだけを印刷!

【VBA】印刷範囲を設定・調整する方法と活用例

✅ 印刷プレビューを表示

Sub PrintPreview()

ActiveSheet.PrintOut Preview:=True

End Sub

📌実際に印刷せずに、プレビューを確認!

【VBA】印刷プレビューを表示する方法と活用例

印刷範囲の設定

シートの特定の範囲だけを印刷するには、PrintAreaプロパティを使います。

✅ 印刷範囲

Sub SetPrintArea()

ActiveSheet.PageSetup.PrintArea = "$A$1:$D$20"

End Sub

📌範囲セルだけA1:D20を印刷対象に!

✅ 印刷範囲をクリア

Sub ClearPrintArea()

ActiveSheet.PageSetup.PrintArea = ""

End Sub

📌印刷範囲を解除し、シート全体を印刷対象に!

印刷設定のカスタマイズ

VBA では、PageSetupプロパティを使って印刷設定を詳細に制御できます。

✅ 用紙サイズ

Sub SetPaperSize()

ActiveSheet.PageSetup.PaperSize = xlPaperA4

End Sub

📌 A4サイズで印刷!(その他xlPaperLetterなども使用可能)

✅ 横向き・縦向きを設定

Sub SetOrientation()

ActiveSheet.PageSetup.Orientation = xlPortrait ' 縦向き
' ActiveSheet.PageSetup.Orientation = xlLandscape ' 横向き

End Sub

📌縦向き(xlPortrait)か横向き(xlLandscape)を選択!

✅ヘッダーとフッターを設定

Sub SetHeaderFooter()

With ActiveSheet.PageSetup

.CenterHeader = "会社名"
.RightHeader = "ページ &[Page] / &[Pages]"
.CenterFooter = "作成日: &[Date]"

End With

End Sub

📌ヘッダーやフッターに情報を追加!([Page]はページ番号、[Date]は作成日)

✅ 余白を調整

Sub SetMargins()

With ActiveSheet.PageSetup

.LeftMargin = Application.InchesToPoints(0.5)
.RightMargin = Application.InchesToPoints(0.5)
.TopMargin = Application.InchesToPoints(0.75)
.BottomMargin = Application.InchesToPoints(0.75)

End With

End Sub

📌InchesToPoints()でインチ単位をポイントに変換!

印刷オプションの設定

✅ モノクロ印刷を設定

Sub SetBlackAndWhite()

ActiveSheet.PageSetup.BlackAndWhite = True

End Sub

📌印刷カラーを強制的にモノクロに!

✅ グリッド線を印刷

Sub PrintGridlines()

ActiveSheet.PageSetup.PrintGridlines = True

End Sub

📌シートのグリッド線を印刷!

✅ 行列番号を印刷

Sub PrintHeadings()

ActiveSheet.PageSetup.PrintHeadings = True

End Sub

📌行番号や列番号を印刷!

【VBA】最終列を取得:範囲指定

プリンターの設定

✅デフォルトのプリンターを取得

Sub GetActivePrinter()

Debug.Print Application.ActivePrinter

End Sub

📌最新のプリンター名を取得!

✅ プリンターを変更する

Sub SetActivePrinter()

Application.ActivePrinter = "プリンター名"

End Sub

📌ネットワークプリンターを指定する場合は、正確なプリンターパスが必要です!

【VBA】印刷時にプリンターを指定する方法と応用テクニック

印刷の自動化(実践例)

以下のコードは、「特定の範囲をA4サイズで横向き、プレビュー表示後に印刷する」というトレイルを自動化する例です。

✅ 印刷自動化のコード

Sub AutoPrint()

With ActiveSheet.PageSetup

.PrintArea = "$A$1:$F$30" ' 印刷範囲
.PaperSize = xlPaperA4 ' A4サイズ
.Orientation = xlLandscape ' 横向き
.Zoom = False
.FitToPagesWide = 1 ' 横1ページに収める
.FitToPagesTall = 1 ' 縦1ページに収める

End With

ActiveSheet.PrintOut Preview:=True ' プレビュー表示後に印刷

End Sub

📌 「A1 :F30 」を1ページにて行ってプレビュー表示!


まとめ

設定項目使用するプロパティ・メソッド
シート裏面印刷ActiveSheet.PrintOut
特定の範囲を印刷する.PrintArea = "$A$1:$D$20"
用紙サイズ.PaperSize = xlPaperA4
縦向き・横向き.Orientation = xlPortraitまたは.Orientation = xlLandscape
ヘッダー・フッター.CenterHeader = "会社名"
モノクロ印刷.BlackAndWhite = True
グリッド線印刷.PrintGridlines = True
プリンターの変更Application.ActivePrinter = "プリンター名"

-VBAで自動化, VBA一覧, ファイル・印刷操作, 印刷設定