Excelのマクロ(VBA)を使うと、ボタンひとつで印刷できるように設定 できます!
ここでは、基本的な印刷方法から、便利な印刷設定まで、初心者さんでも簡単にできる方法をいくつか紹介します。

マクロについて何も知らない方向けの記事はコチラ!
「一番わかりやすい」を目指してます!
【初心者向け】Excelマクロの始め方|基本から自動化のコツまで解説 – いのこblog
「印刷ボタン」を作成する方法(マクロの記録)
「マクロの記録」とは、マクロについての知識が0でもマクロを作成することができる機能です。
『開始ボタンを押してから、終了ボタンを押すまでにエクセル内で作業したことを記録』してくれ、ボタン一つで記録した作業を繰り返し実行する機能です。
- 「開発」→「マクロの記録」→「OK」の順にボタンをクリック
- 印刷する
- 「記録終了」ボタンを押す
- 「開発」→「挿入」→「ボタン(フォームコントロール)」をクリック
- ボタンを設置
- 実行するマクロを選択する
1.まずは「マクロの記録」を開始します。マクロ名はそのままでも名前(日本語可)を付けてもOKです。

2.次に、「範囲を選択」し「印刷範囲を設定」してから「印刷する」を記録させました。
3.「記録終了」ボタンを押したら、マクロの記録は完了です。

4.つぎに、フォームコントロールのボタンを選択し、置きたいところに設置します。

5.ボタンを置くと、マクロの選択ポップアップウインドウが表示されるので、先ほど作成したマクロを選択すれば(●`・ω・)ゞ<ok!

出来上がったボタンがこちら!このボタンを押すと、印刷が開始されます!

「VBAコード」を使ってマクロを作る
ExcelマクロはVBA(Visual Basic for Applications)を使うことで、より柔軟なカスタマイズが可能です。いくつかご紹介します。
>> VBAウインドウの開き方はコチラ!
「今開いているシート」を印刷するコード
Sub 印刷する()
ActiveSheet.PrintOut
End Sub
「範囲を指定」して印刷するコード
Sub 指定範囲を印刷()
Sheets("Sheet1").Range("A1:D10").PrintOut
End Sub
👉 「Sheet1」のA1:D10だけを印刷!
「プレビューを表示」して印刷するコード
Sub 印刷プレビュー()
ActiveSheet.PrintPreview
End Sub
「シート全体を1ページに収めて」印刷するコード(縮小設定)
Sub 1ページに収める()
With ActiveSheet.PageSetup
.Zoom = False ' ズーム設定を無効化(FitToPagesを有効にするため)
.FitToPagesWide = 1 ' 横1ページに収める
.FitToPagesTall = 1 ' 縦1ページに収める
End With
ActiveSheet.PrintOut
End Sub
👉 ページを1枚に自動調整して印刷することができるコードです!
「 プリンターを選んで」印刷するコード
Sub プリンター指定()
ActivePrinter = "Microsoft Print to PDF"
ActiveSheet.PrintOut
End Sub
👉 「Microsoft Print to PDF」で印刷することができるコードです。 プリンター名は環境によって違うので、自分のPCで確認しよう!
「データがある範囲だけを自動で設定」して印刷するコード
Sub データ範囲を自動印刷()
Dim lastRow As Long, lastCol As Long
lastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row
lastCol = ActiveSheet.Cells(1, Columns.Count).End(xlToLeft).Column
ActiveSheet.PageSetup.PrintArea = ActiveSheet.Range(Cells(1, 1), Cells(lastRow, lastCol)).Address
ActiveSheet.PrintOut
End Sub
👉 A列でデータがある一番最後の行番号(LastRow)と1行目の一番最後の列番号(LastCol)を調べて、範囲を設定して印刷できます!
「.PageSetup」設定できる項目一覧
Excel VBAの 「.PageSetup
」で設定できる項目は、主に印刷設定に関するものです。以下に主要なプロパティをカテゴリ別に詳しく説明します。
用紙サイズと余白設定
プロパティ名 | 説明 | 設定値の例 |
---|---|---|
.PaperSize | 用紙サイズを指定 | xlPaperA4 , xlPaperLetter など |
.Orientation | 用紙の向きを指定 | xlPortrait ’ 縦向きxlLandscape ’ 横向き |
.LeftMargin | 左余白(ポイント単位) | Application.InchesToPoints(0.5) ’ 0.5pt |
.RightMargin | 右余白(ポイント単位) | Application.InchesToPoints(0.5) |
.TopMargin | 上余白(ポイント単位) | Application.InchesToPoints(0.75) |
.BottomMargin | 下余白(ポイント単位) | Application.InchesToPoints(0.75) |
.HeaderMargin | ヘッダーの余白 | Application.InchesToPoints(0.3) |
.FooterMargin | フッターの余白 | Application.InchesToPoints(0.3) |
2. ヘッダー・フッター設定
プロパティ名 | 説 明 | 設定値の例 |
---|---|---|
.CenterHeader | ヘッダー中央のテキスト | "〇〇〇" ’ ○○〇とヘッダー中央に表示 |
.LeftHeader | ヘッダー左のテキスト | "左ヘッダー" |
.RightHeader | ヘッダー右のテキスト | "右ヘッダー" |
.CenterFooter | フッター中央のテキスト | "ページ &P / &N" ’ ※1 |
.LeftFooter | フッター左のテキスト | "左フッター" |
.RightFooter | フッター右のテキスト | "右フッター" |
※1… 「"ページ &P / &N"
」の「&P
」は現在のページ番号、「&
N」はドキュメント全体の総ページ数を表すので、フッター中央には「ページ P / N」と表示されます。
📘 補足:他によく使われるコード(ヘッダー・フッターにて)
コード | 意味 |
---|---|
&P | 現在のページ番号 |
&N | 総ページ数 |
&D | 印刷日 |
&T | 印刷時刻 |
&F | ファイル名 |
&A | シート名 |
3. 拡大縮小・印刷範囲設定
プロパティ名 | 説明 | 設定値の例 |
---|---|---|
.Zoom | 拡大・縮小率(10~400) | 75 ’ 75% |
.FitToPagesWide | 横方向のページ数に収める | 1 ’ 1ページに収める |
.FitToPagesTall | 縦方向のページ数に収める | 1 ’ 1ページに収める |
.PrintArea | 印刷範囲を指定 | "$A$1:$D$50" |
.PrintTitleRows | 繰り返すタイトル行 | "$1:$1" ’ 全てのページに1行目をタイトルとして表示する |
.PrintTitleColumns | 繰り返すタイトル列 | "$A:$A" ’ 全てのページにA列をタイトルとして表示する |
4. 印刷オプション
プロパティ名 | 説明 | 設定値の例 |
---|---|---|
.BlackAndWhite | 白黒印刷にする | True (白黒) |
.Draft | 下書きモードで印刷 | True (下書き) |
.PrintGridlines | 罫線を印刷するか | True (罫線あり) |
.PrintHeadings | 行列番号を印刷するか | True (印刷する) |
.CenterHorizontally | 水平方向の中央揃え | True (中央揃え) |
.CenterVertically | 垂直方向の中央揃え | True (中央揃え) |
.PrintComments | コメントを印刷するか | xlPrintSheetEnd (シート末尾に印刷) |
.PrintErrors | エラーの表示方法 | xlPrintErrorsDisplayed ,xlPrintErrorsBlank など |
5. その他の設定
プロパティ名 | 説明 | 設定値の例 |
---|---|---|
.OddAndEvenPagesHeaderFooter | 奇数・偶数ページで異なるヘッダー/フッター | True (有効) |
.DifferentFirstPageHeaderFooter | 最初のページだけヘッダー/フッターを変更 | True (有効) |
.Order | 印刷順序 | xlDownThenOver (列単位で印刷) |
サンプルコード
以下は .PageSetup
の設定を行う VBA のサンプルコードです。
ひとつひとつ設定することも可能ですが、下記のように一括でセットアップする方が楽なので、是非覚えてください!
Sub PrintSetup()
With ActiveSheet.PageSetup
.PrintArea = "A1:G7" ' 印刷範囲設定
.Orientation = xlLandscape ' 横向き印刷
.PaperSize = xlPaperA4 ' A4サイズ
.LeftFooter = "&F" ' フッター左下にファイル名入力
.Zoom = False ' 拡大縮小オフ
.FitToPagesWide = 1 ' 1ページに収める(横)
.FitToPagesTall = 1 ' 1ページに収める(縦)
.CenterHorizontally = True ' 水平中央揃え
.CenterVertically = True ' 垂直中央揃え
End With
End Sub
このコードを実行すると、アクティブシートの印刷設定が変更されます。
そのまま印刷するマクロにしたいなら、「 ActiveSheet.PrintOut 」を「 End With 」の下の行に入力してくださいね!
💡 まとめ
印刷方法 | コード |
---|---|
シート全体を印刷 | ActiveSheet.PrintOut |
指定範囲だけ印刷 | Sheets("Sheet1").Range("A1:D10").PrintOut |
プレビューを表示 | ActiveSheet.PrintPreview |
1ページに収める | .FitToPagesWide = 1 |
A4横で印刷 | .Orientation = xlLandscape |
ヘッダー・フッターを追加 | .CenterHeader = "会社名" |
プリンターを指定 | ActivePrinter = "プリンター名" |
PDFとして保存 | ActiveSheet.ExportAsFixedFormat xlTypePDF |
自動で印刷範囲を設定 | lastRow, lastCol を取得 |
ボタンで印刷 | マクロをボタンに登録 |
初心者でもわかるように、よく使う印刷設定を一覧にしてみました!
これをマスターすれば、Excelの印刷作業がすごく便利になりますよ!😊✨