今回説明するのは、印刷のダイアログボックスを表示させて、EXCELシート・ブックを印刷する方法を説明いたします。印刷する際に全て自動化してしまうと、いざ、部数や範囲などを変更する際に、直接プログラムを変更する必要があります。特に頻繁に部数・ページ範囲などの変更が発生するとプログラムの変更も大変なので、【印刷】ダイアログボックスを表示させて、その都度必要に応じて部数・範囲等を変更した方が取り扱いやすいです。
●【EXCEL VBA PrintOut (印刷・印刷プレビュー・印刷範囲・複数シート)については、下記を参照して下さい】
●【EXCEL VBA 印刷のページ設定 PageSetup(印刷・余白・拡大縮小・ヘッダー・フッター・ページ番号・用紙サイズ)については、下記を参照して下さい】
● ダイアログボックスを表示して印刷するには、下記の通りに設定を行います。
※下記の印刷のダイアログボックスの設定例は、Arg1:(2:ページ指定)・Arg2:(開始1ページ)・Arg3:(終了3ページ)・Arg4:(部数4)
' Sub Dialogprint00() Application.Dialogs(xlDialogPrint).Show Arg1:=2, Arg2:=1, Arg3:=3, Arg4:=5 End Sub '
設定値 | 説明(内容) | 引数 |
---|---|---|
Arg1 | 印刷範囲 | 1:すべて 2:ページ設定 |
Arg2 | 開始 | ページ番号(数値) |
Arg3 | 終了 | ページ番号(数値) |
Arg4 | 部数 | (数値) |
Arg5 | 簡易印刷 | 簡易印刷(0:しない、1:する) ※1:「する」場合は罫線などが表示されません。 |
Arg6 | 印刷プレビュー | ※機能しません。 |
Arg7 | メモ印刷 | 1:表示セルの印刷(通常) 2::コメント場所印刷 |
Arg8 | カラー印刷 | ※mac用 |
Arg9 | 紙送り | ※mac用 |
Arg10 | 印刷品質 | dpi(数値) |
Arg11 | 縦方向の解像度 | dpi(数値) |
Arg12 | 印刷対象 | 1:選択した部分 2:選択したシート 3:ブック全体 4::テーブル |
Arg13 | プリンター名 | プリンター名(文字列) |
Arg14 | ファイルへ出力 | ON::True OFF:False |
Arg15 | 部単位で印刷 | ON::True OFF:False |
下記のサンプルプログラムは、組み込みダイアログボックス(印刷)既定値の設定方法及び印刷実行後の動作について、各設定ごとに説明いたします。
Arg1:印刷範囲 Arg2:開始 Arg3:終了
' ' Sub Dialogprint01() '印刷範囲・ページ番号(開始 終了) Application.Dialogs(xlDialogPrint).Show Arg1:=2, Arg2:=1, Arg3:=4 End Sub '
Arg4:部数
' ' Sub Dialogprint02() '部数 Application.Dialogs(xlDialogPrint).Show Arg4:=2 End Sub '
Arg5:簡易印刷
' ' Sub Dialogprint03() '簡易印刷 Application.Dialogs(xlDialogPrint).Show Arg5:=1 End Sub '
Arg7:メモ印刷
' ' Sub Dialogprint04() 'メモ印刷 Application.Dialogs(xlDialogPrint).Show Arg7:=2 End Sub '
Arg12:印刷対象
' ' Sub Dialogprint05() '印刷対象 Application.Dialogs(xlDialogPrint).Show Arg12:=1 End Sub '
Arg13:プリンター名
' ' Sub Dialogprint06() 'プリンター名 Application.Dialogs(xlDialogPrint).Show Arg13:=”Fax” End Sub '
Arg14:ファイルへ出力
' ' Sub Dialogprint07() 'ファイルへ出力 Application.Dialogs(xlDialogPrint).Show Arg14:=True End Sub '
Arg15:部単位で印刷
' ' Sub Dialogprint08() '部単位で印刷 Application.Dialogs(xlDialogPrint).Show Arg15:=True End Sub '
下記のサンプルプログラムは、組み込みダイアログボックス(印刷)を利用して、ワークシート(セル)に設定している通りに、組み込みダイアログボックス(印刷)の既定値として表示設定するサンプルプログラムです。この方法を使う事で、ワークシート別に既定値(印刷設定)として登録して、組み込みダイアログボックスに表示する事もできます。
' ' Sub Dialogprint10() 'ワークシートの設置値をダイアログボックスへ設定する。 Dim ws01, ws02 As Worksheet Set ws01 = Worksheets("設定") Set ws02 = Worksheets("印刷") ws02.Activate 'ワークシート「印刷」をアクティブにする。 Application.Dialogs(xlDialogPrint).Show Arg1:=ws01.Range("B2") _ , Arg2:=ws01.Range("B3") _ , Arg3:=ws01.Range("B4") _ , Arg4:=ws01.Range("B5") _ , Arg5:=ws01.Range("B6") 'ダイアログボックスに設定する。 End Sub '
下記のサンプルプログラムは、印刷・組み込みダイアログボックスをキャンセルした場合の対処方法です。ダイアログボックスが表示されて「OK」を押した場合は、そのまま設定値通りに印刷を行いますが、「キャンセル」を押した場合、何もしませんが、「キャンセル」を押した場合に、何らかの処理を行う場合は、下記の通りに設定いたします。下記のサンプルプログラムでは、「キャンセル」を押した時にメッセージボックスが表示されるようになっています。
● ダイアログボックス(印刷)が表示され、「キャンセル」ボタンをクリックしますと、メッセージボックスが表示されます。
' ' Sub Dialogprint11() 'ダイアログボックスをキャンセルした場合。 Dim Ans As Boolean Ans = Application.Dialogs(xlDialogPrint).Show 'ダイアログボックスを表示します。 If Ans = False Then MsgBox "キャンセルボタンをクリック" End If End Sub '