VBAで印刷範囲登録や選択した範囲を印刷範囲に設定する方法

Excel-VBA印刷

エクセルで印刷した時に、範囲指定を忘れたり、設定したはずなのになぜかはみ出てしまったりした経験ありませんか?

共有プリンターや共有パソコンでは最後に使った人がどんな設定をしたか不明なので、よくある事ですよね。

そんな失敗や紙の無駄をしないように、VBAを使って印刷範囲を登録しておけば、設定が変わっていても登録通りの印刷範囲に修正して印刷しますよ!

スポンサーリンク

印刷範囲(PrintArea)設定する

ここでは、ユーザーフォームに配置したコマンドボタンにVBAコードを書き、表示中のシートのページ設定(ActiveSheet)で記載しています。

シートを指定する場合はActiveSheetWorkSheets(“シート名”)に変えるだけです。

印刷範囲が毎回同じならば範囲登録する

請求書や納品書または成績表など、毎回印刷範囲が変わる事は滅多にありませんので、同じ範囲を印刷するならば、PrintAreaプロパティを使って印刷範囲を登録しておくと失敗しませんね。

印刷範囲を登録する

Private Sub CommandButton1_Click()
With ActiveSheet
.PageSetup.PrintArea = “A1:G23”
.PrintPreview
End With
End Sub

VBA解説
  1. コマンドボタン1がクリックされたら
  2. 表示中のシートのページ設定をする
  3. 印刷範囲はセルA1~セルG23の範囲とする
  4. 印刷プレビューを表示する
  5. Withステートメント終了
  6. マクロ記録終了

これで、コマンドボタンをクリックするとA1:G23の範囲だけを印刷範囲として、印刷プレビューが表示されます。

印刷プレビューが必要なくそのまま印刷をするならば、.PrintPreviewを.PrintOutに変更するだけです。

マウスで選択中の範囲を印刷する範囲にして印刷する

次に、印刷範囲が毎回決まっていなくて、選択中の範囲を印刷範囲にすることもできます。

選択中の範囲を印刷範囲指定

Private Sub CommandButton1_Click()
With ActiveSheet
.PageSetup.PrintArea = Selection.Address
.PrintPreview
End With
End Sub

VBA解説
  1. コマンドボタン1がクリックされたら
  2. 表示中のシートのページ設定をする
  3. 選択中の範囲を印刷範囲とする
  4. 印刷プレビューを表示する
  5. Withステートメント終了
  6. マクロ記録終了

決まっている範囲の時(A1:G23)としていた部分が、選択中の範囲(Selection.Address)に変えただけです。

とりっぷぼうる
とりっぷぼうる

印刷範囲が決まっていれば、範囲だけではなくて余白や用紙サイズ・向きなども一緒に設定しておくとより失敗しない印刷ができますので、おススメですよ。

印刷関連VBA