用紙1枚に収めて印刷
マクロ講座30回


Excel 2013マクロ講座30回
用紙1枚に印刷設定するマクロ
シートを印刷した時に1枚に印刷するつもりが、ほんのわずかだけ2枚目に印刷されてしまったという失敗。
なんとも嫌なものですね。
用紙1枚に収めるには、ページ設定画面からできますが、これを今回はマクロにします。
(サンプルファイルは、こちらから 2013マクロ講座30回サンプルデータ)
用紙1枚に印刷設定するマクロ
たとえば、ちょっとA4縦方向からはみ出しそうな表を1枚に収めて印刷したいとします。


マクロの記録で作ってみます。記録開始ボタンをクリックします。
保存先は、個人用のブックが良いのですが、例では今回は作業中のブックです。

保存先は、個人用のブックが良いのですが、例では今回は作業中のブックです。

ファイルタブをクリックしてバックステージビューを開き印刷をクリック。


拡大縮小なしのドロップダウンメニューから、シートを1ページに印刷を選択します。


マクロの記録終了ボタンをクリックして、マクロの記録を終了します。するとこのようなコードが記録されています。


たくさん記録されていますが、目的に必要なものは、わずか数行です。
不要な行を削除してしまいます。

不要な行を削除してしまいます。

必要なのは、横1×縦1です。
FitToPagesWideプロパティとFitToPagesTallの両方に1を指定しているので、シートがちょうど1ページに収まるように自動的に縮小されるのです。
FitToPagesWideプロパティとFitToPagesTallの両方に1を指定しているので、シートがちょうど1ページに収まるように自動的に縮小されるのです。
Sub 用紙1枚に印刷設定プレビュー() With ActiveSheet.PageSetup .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 1 End With Application.PrintCommunication = True End Sub「Application.PrintCommunication」プロパティは、Excel 2010から追加されプロパティで、PageSetupプロパティを設定するコードの実行を高速化するのですが、1枚に収めるようなケースでは、不要でしょう。
さらに記録されたマクロを実行しても、プレビュー最後に表示することができなかったので、ActiveSheet.PrintPreviewの1行を追加します。
Sub 用紙1枚に印刷設定プレビュー() With ActiveSheet.PageSetup .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 1 End With ActiveSheet.PrintPreview End Sub
印刷の設定がされてないシートでマクロを実行すると、1枚に収まるように設定されてプレビューが表示されます。


今日の講義は以上です。お疲れ様でした。