はじめに
前回は選択した複数のExcelファイルを一括でブック全体印刷する方法をご説明しました。
今回は前回と方向を逆にして、VBAマクロで「指定した範囲のみ印刷する」方法をご紹介します。
大量にあるExcelシートの中で指定した範囲だけ印刷していというケースがあるとおもいます。
しかし、いちいち印刷画面で範囲指定する作業はめんどくさいもの。
本記事でご紹介するVBAマクロを使えば煩わしい作業から開放されるかもしれません。
VBAマクロで範囲指定で印刷する本記事の目的
前回の記事ではVBAマクロのSheets メソッドを使用して複数のExcelファイルのブック全体を一括印刷する方法をご説明しました。
本記事では、前回の記事をベースに印刷する範囲を指定して印刷する方法をご説明します。
同じような構成のExcelブックに対して指定した部分のみ印刷したいときなどに便利だと思います。
また、前回同様、複数ファイルを選択してfor文で繰り返し処理などを実装するとより作業が捗るかと思いますので、本記事を参考にチャレンジしてみてください。
VBAマクロで範囲指定で印刷する処理の流れ
処理の流れとしては、
印刷したいファイルをダイアログで選択
↓
Workbookオブジェクトとして開く
↓
Sheets.PrintOut によりブックの 範囲を指定して 印刷する
↓
ブックを保存しないで閉じる
という流れになります。
VBAマクロで範囲指定で印刷する関数・プロパティなど
Sheets メソッド (Excel)
Sheets.PrintOut(From、 To、複写、 Preview、 activeprinter、 PrintToFile、 Collate、 prtofilename、 ignoreprintareas)
VBAマクロで範囲指定で印刷するサンプルコード
それではサンプルコードです。
次の使用例は、sheet1のページ2からページ3を印刷します。
Sub 範囲指定印刷() Dim FileName As Variant FileName = Application.GetOpenFilename _ ("Microsoft Excelブック,*.xls?") If VarType(FileName) = vbBoolean Then MsgBox "キャンセルされました" Exit Sub End If Dim wb As Workbook Set wb = Workbooks.Open(FileName) wb.. ("sheet1").PrintOut From:=2, To:=3 wb.Close False MsgBox "印刷終了しました。" End Sub
終わりに
今回の改良でExcelファイルの指定した範囲を印刷できます。複数シートで構成されているExcelファイルの特定の部分を印刷したいときに便利です。
前回に続いて注意点として印刷の際に選択されるプリンタはOSの方で規定のプリンタに指定されているものが自動選択されます。印刷したい形式(紙なのかPDF化するのか等)の目的に応じて選択してください。
印刷するプリンタをVBAマクロ側でコントロールする場合はActivePrinterパラメータで指定するのをお忘れなく!間違って他の部署のプリンタを占領してしまうことがないようにくれぐれもご注意ください汗