Excel印刷でイライラしないためのマクロ基本TipsExcelマクロ/VBAで始める業務自動化プログラミング入門(11)(1/4 ページ)

途中で切れて2ページ目にずれ込まないように表を1ページに収める方法、印刷時に繰り返し出したいヘッダーやフッターのさまざまな設定、改ページによるずれ込みを防ぐための「印刷範囲」の固定、「印刷タイトル」(見出し)の固定、「印刷プレビュー」の表示、印刷の実行方法などを解説【Windows 10、Excel 2016に対応】。

» 2016年09月15日 05時00分 公開
[薬師寺国安PROJECT KySS]

印刷処理は、なくならない

 プログラミング初心者を対象にExcelマクロ/VBAを使った業務自動化プログラムの作り方を一から解説する本連載「Excelマクロ/VBAで始める業務自動化プログラミング入門」。今回はExcelの「印刷処理」について解説する。

 Excelを使っている以上は、印刷は必ず行う作業だ。というよりも、日本で行われる「業務」には文書の印刷処理が必ずついて回るといっても過言ではない。ペーパーレス化が推進されている昨今だが、まだまだ印刷処理はなくならないだろう。

 印刷処理をマクロ化しておくと、手作業での印刷設定がなくなり、作業効率も格段にアップする。

 例えば、筆者はExcelを使って工程表を作成していたことがあるが、その頃はVBAをやったことがなかったので、印刷設定などは全て手作業で行っていた。毎日同じ表を印刷するのであれば、一度マクロを作成しておいてボタンに登録しておけば、今回のようにボタンクリック1回で必要な表の印刷ができたのだ。

 「作業効率も格段にアップしていただろうな」と今さらながらに思う。ぜひ、読者の皆さまには、今回紹介するマクロを応用して印刷処理の自動化を目指してほしい。

途中で切れて2ページ目にずれ込まないように、表を1ページに収めるには

 印刷を設定する際に一番面倒なのが、1ページ目の途中で切れて、少しのデータだけが2ページ目にずれ込んでしまったときだ。そういった場合は1ページに収めるために縮小して印刷する。この処理をVBAでやってみよう。かなり使用頻度の高い処理だと思う。

 シートにページ設定を行うオブジェクトは「PageSetUp」だ。

 図1のように少しだけA4用紙の2ページ目にずれ込んでいる表がある。この表は「社員売上金額」という「シート名」を付けている。

図1 A4用紙の2ページ目にずれ込んでいる表

 この表をA4の1ページに収めるにはリスト1のマクロを書く

Option Explicit
Sub 印刷時に1ページに収める()
  With Worksheets("社員売上金額").PageSetup
    .Orientation = xlPortrait
    .Zoom = False
    .FitToPagesTall = 1
    .FitToPagesWide = 1
  End With
  Worksheets("社員売上金額").PrintPreview
End Sub
リスト1 A4サイズ用紙に表を収める

縦/横何ページ分で収めるかを示す、FitToPagesTall/FitToPagesWideプロパティ

 表を1ページに収めるには、FitToPagesTallとFitToPagesWideプロパティを使用する。書式は下記の通りだ。

FitToPagesTallとFitToPagesWideプロパティの書式

PageSetUpオブジェクト.FitToPagesTall

PageSetUpオブジェクト.FitToPagesWide


 FitToPagesTallプロパティは、ワークシートを印刷するときに、縦何ページ分で収めるかを示す値を設定する。FitToPagesWideプロパティは、ワークシートを印刷するときに、横何ページ分で収めるかを示す値を設定する。

 FitToPagesTall/FitToPagesWideプロパティには、用紙の縦横を1ページに収めるように設定する。

ページの方向を設定するOrientationプロパティ

 Orientationプロパティには、ワークシートを印刷する場合のページの方向を設定する。ここでは、「xlPortrait」を設定して「縦モード」で印刷するよう設定している。「横モード」で印刷する場合は「xlLandscape」を設定する。

PrintPreviewメソッドで印刷プレビューを表示する

 リスト1の9行目に出てくるPrintPreviewの書式は下記の通りだ。

PrintPreviewメソッドの書式

オブジェクト.PrintPreview([ページ設定]ボタンの使用可をTrue|Falseで設定)


 引数にTrueを設定すると、印刷時の[ページ設定]ボタンの使用が可能になる。Falseを設定すると使用は不可となる。省略した場合はTrueを設定したのと同じになる。各自が「PrintPreview(False)」と設定して確認するといいだろう。

 オブジェクトには、Workbook、Worksheet、Chartオブジェクト、またはSheets、WorkSheets、Charts、Rangeコレクションを設定可能だ。

実行結果

 「印刷プレビュー」というボタンを作っておいて、リスト1のマクロを登録する。実行すると、図2のように表示される。PrintPreviewの引数には何も設定していないので、Trueを設定したことと同じになり、[ページ設定]ボタンの使用が可能になっている。

図2 A4用紙縦1ページに収められて[ページ設定]ボタンは使用可能な状態で印刷プレビューが表示された

 図2の右図を見ると分かるが「印刷プレビュー」というボタンまで入ってしまっている。この「印刷プレビュー」というボタンを外したい場合は、印刷範囲の外にボタンを配置しておけば、ボタンは印刷されない。

 次ページでは、ヘッダーやフッターの設定方法を見てみよう。

       1|2|3|4 次のページへ

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。