エクセルで印刷の位置がずれたり、用紙からはみ出たり、必要ないページが印刷されたりして困ったことありませんか?
特に共有プリンターや複数プリンターが選択できる場合、さらに共有パソコンともなると、よくある日常です。
このような場合の解決方法は2つありますので、実行している対策をご紹介します。
PaperSizeプロパティを使う解決法
A4サイズの用紙をVBAコードで設定することで、わざわざページ設定画面を開いて指定する必要がなくなりますので、手間も時間も節約でき仕事効率化になります。
いつものようにユーザーフォームに配置したコマンドボタンにVBAコードを書いています。
ページ設定でA4用紙に固定
Private Sub CommandButton1_Click()
Worksheets(“Sheet1”).PageSetup.PaperSize = xlPaperA4
End Sub
VBA解説
- コマンドボタン1がクリックされたら
- 「Sheet1」という名のシートの印刷のページ設定はA4用紙にする
- マクロ記録終了
A4以外にも用紙は選択できますので、定数を変更すれば用紙を指定できますよ。
定数 | 用紙サイズ |
xlPaperA4 | A4用紙 |
xlPaperA3 | A3用紙 |
xlPaperA5 | A5用紙 |
xlPaperB4 | B4用紙 |
xlPaperB5 | B5用紙 |
Dialogsプロパティを使う解決法
こちらの方法は単純にプリンターのプロパティーを呼び出して直接調整するDialogsプロパティを使う方法です。

プリンターのダイアログボックス表示
Application.Dialogs(xlDialogPrinterSetup).Show
この1行のVBAコードを書き加えれば、プリンター選択画面が表示されます。
詳しくは下記ページをご覧下さいませ。

とりっぷぼうる
印刷のページ設定をVBAで出来るのは用紙だけではありませんので、一緒に設定したほうが失敗印刷すなくて済みますよ。
印刷関連VBA
- エクセルからエクセルへ差し込み印刷
- 印刷プレビュー
- 枚数指定して印刷実行
- セル番地の値を取得して開始・終了ページ設定
- プリンター選択・設定
- 印刷範囲指定・選択中範囲印刷
- 用紙の向きを指定する
- 用紙サイズを指定する
- 印刷倍率を指定する
- 印刷倍率を自動調整に設定して1ページ内に収めて印刷
- インク・トナー節約設定
- ページ設定で上下左右の余白を指定する
- ヘッダーとフッターを指定する
- フッターの開始ページ数指定と総ページ数表示
- ヘッダー2行表示や日時表示
- 数式エラーを自動的に空白にして印刷する
- 入力漏れがあったら印刷を自動停止する