【VBAリファレンス|実務向け】選択した範囲だけを印刷する|現場で役立つExcel印刷テクニック

スポンサーリンク

1. 導入:なぜ「選択範囲の印刷」が重要なのか

Excelで帳票やレポートを作成する際、巨大な表全体ではなく「特定のデータだけをサッと印刷したい」という場面は非常に多いはずです。全体を印刷して紙を無駄にしたり、印刷後に不要な部分を切り落としたりしていませんか?「選択した範囲だけを印刷する」機能を使いこなすことで、ペーパーレス化に貢献するだけでなく、資料作成の効率を劇的に向上させることができます。

2. 基礎知識:Excelの「印刷対象」設定とは

Excelの印刷設定において、デフォルトでは「作業中のシート」全体が印刷対象となっています。しかし、印刷メニューの中には「印刷対象」を切り替えるオプションが存在します。これを利用することで、シートの一部だけをピンポイントで出力することが可能です。この操作を覚えるだけで、わざわざ印刷用の別シートを作る手間が省けます。

3. 実装・解決策:マウス操作とVBAによる自動化

手動で行う場合は、印刷したい範囲を選択した状態で「ファイル」タブの「印刷」を開き、設定項目にある「作業中のシートを印刷」をクリックして「選択した部分を印刷」に変更するだけです。

しかし、毎日の定型業務で特定の範囲を印刷する必要があるなら、VBAで自動化するのがベテランのやり方です。VBAを使えば、ボタン一つで「範囲選択→印刷→設定を元に戻す」までを一瞬で完了させることができます。

4. サンプルプログラム:選択範囲を印刷するVBAコード

以下のコードを標準モジュールに貼り付けて実行してください。選択中の範囲を印刷し、終わった後に元の印刷設定(シート全体)に戻すように設計しています。

Sub PrintSelectionOnly()
‘ 選択した範囲がセル範囲かどうかを確認
If TypeName(Selection) <> “Range” Then
MsgBox “セル範囲を選択してください。”
Exit Sub
End If

‘ 選択範囲を印刷対象に設定して印刷を実行
‘ PrintOutメソッドの引数で範囲指定も可能ですが、
‘ PageSetupのPrintAreaを使うと確実です
With ActiveSheet.PageSetup
‘ 現在の印刷範囲を一時的に保持する場合はここに変数を用意します
Dim originalPrintArea As String
originalPrintArea = .PrintArea

‘ 選択した範囲を印刷範囲に設定
.PrintArea = Selection.Address

‘ プレビューを表示(本番印刷ならPreview:=Falseにしてください)
ActiveSheet.PrintOut Preview:=True

‘ 印刷設定を元に戻す
.PrintArea = originalPrintArea
End With
End Sub

5. 応用・注意点:現場で陥りやすいトラブル回避

【注意点1:印刷範囲の「ゴミ」を残さない】
VBAで「PrintArea」を直接書き換える手法は非常に強力ですが、プログラムが途中でエラー終了すると、印刷範囲の設定が書き換わったまま残ってしまうことがあります。必ず上記サンプルのように、元の設定を保持して最後に復元する(またはエラー処理を入れる)習慣をつけてください。

【注意点2:改ページ設定を確認する】
範囲選択印刷をしても、列や行の幅が広すぎて意図しないところで改ページされることがあります。「表示」タブから「改ページプレビュー」を確認し、ページ区切りが適切かチェックするのもプロの仕事です。

これらのテクニックを組み合わせれば、印刷作業のスピードは飛躍的にアップします。ぜひ明日からの業務に取り入れてみてください。

タイトルとURLをコピーしました