【初心者向け】Excelマクロを使って印刷する様々な方法|解説画像付き

【アフィリエイト広告を利用しています】
スポンサーリンク

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

いのこ
いのこ

マクロについて何も知らない方向けの記事はコチラ!
一番わかりやすい」を目指してます!
【初心者向け】Excelマクロの始め方|基本から自動化のコツまで解説 – いのこblog

「印刷ボタン」を作成する方法(マクロの記録)

「マクロの記録」とは、マクロについての知識がゼロでもマクロを作成することができる機能です。
『開始ボタンを押してから、終了ボタンを押すまでにエクセル内で作業したことを記録』してくれ、ボタン一つで記録した作業を繰り返し実行する機能です。

  1. 「開発」→「マクロの記録」→「OK」の順にボタンをクリック
  2. 印刷する
  3. 「記録終了」ボタンを押す
  4. 「開発」→「挿入」→「ボタン(フォームコントロール)」をクリック
  5. ボタンを設置
  6. 実行するマクロを選択する

1.まずは「マクロの記録」を開始します。マクロ名はそのままでも名前(日本語可)を付けてもOKです。

【Excelマクロ】初めてさんへ

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

【Excelマクロ】初めてさんへ

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

【Excelマクロ】印刷

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

【Excelマクロ】印刷

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

【Excel】マクロ初心者口座(ボタン)

「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の印刷作業がすごく便利になりますよ!😊✨

パソコン
スポンサーリンク
シェアおねがいします!
タイトルとURLをコピーしました