Categories: VBA基礎

EXCEL VBA EXCELの印刷・組み込みダイアログを表示して詳細設定して印刷する。ダイアログを使う

 

 

EXCEL VBA EXCELの印刷・組み込みダイアログを表示して詳細設定して印刷する。ダイアログを使う(xlDialogPrint )

 

 

●はじめに

今回説明するのは、印刷のダイアログボックスを表示させて、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

 

 

 

 

 

 

 

EXCEL VBA EXCELの印刷・組み込みダイアログボックス(印刷)既定値の設定方法及び印刷実行後の動作

 

 

●プログラム説明 (サンプル①)

下記のサンプルプログラムは、組み込みダイアログボックス(印刷)既定値の設定方法及び印刷実行後の動作について、各設定ごとに説明いたします。

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
'

 

 

 

 

 

 

EXCEL VBA ワークシートの設定値通りに印刷組み込みダイアログを表示する。

 

 

●プログラム説明 (サンプル②)

下記のサンプルプログラムは、組み込みダイアログボックス(印刷)を利用して、ワークシート(セル)に設定している通りに、組み込みダイアログボックス(印刷)の既定値として表示設定するサンプルプログラムです。この方法を使う事で、ワークシート別に既定値(印刷設定)として登録して、組み込みダイアログボックスに表示する事もできます。

 

 

'
'
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

'

 

 

EXCEL VBA 印刷・組み込みダイアログを「キャンセル」した場合の対処

 

 

●プログラム説明 (サンプル③)

下記のサンプルプログラムは、印刷・組み込みダイアログボックスをキャンセルした場合の対処方法です。ダイアログボックスが表示されて「OK」を押した場合は、そのまま設定値通りに印刷を行いますが、「キャンセル」を押した場合、何もしませんが、「キャンセル」を押した場合に、何らかの処理を行う場合は、下記の通りに設定いたします。下記のサンプルプログラムでは、「キャンセル」を押した時にメッセージボックスが表示されるようになっています。

● ダイアログボックス(印刷)が表示され、「キャンセル」ボタンをクリックしますと、メッセージボックスが表示されます。

 

 

'
'
Sub Dialogprint11()  'ダイアログボックスをキャンセルした場合。

    Dim Ans As Boolean

    Ans = Application.Dialogs(xlDialogPrint).Show  'ダイアログボックスを表示します。

    If Ans = False Then
            MsgBox "キャンセルボタンをクリック"
        
    End If

End Sub
'

 

 

最後まで、ご覧いただきまして誠に有難うございました。
また、VBAに関するテクニックや便利な手法などをこのサイトに掲載していきますので、定期的に参照していただけると幸いです。

 

AKIRA