[[20180305182637]] 『VBA プリンタ指定』(しげ) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『VBA プリンタ指定』(しげ)

VBAでプリンタを指定するために下記のコードを入れました。
そのままプリントするところで、ESCキーやキャンセルをした場合も印刷されます。
プリンタの種類はプリンタ・PDF・FAX送信の3種類です。
使い方としては
プリンタを選択し、プリンタを選んだ場合はそのまま印刷する
PDF・FAX送信を選んだ場合はESCキーまたはキャンセルボタンで印刷指示前状態にしたいのですが、うまくいきません。
教えてください。

Sub 印刷()

    Application.Dialogs(xlDialogPrinterSetup).Show

    Application.EnableCancelKey = xlErrorHandler
    On Error GoTo MyError
    ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True, _
    IgnorePrintAreas:=False
    Application.StatusBar = False
    Exit Sub

MyError:

    If MsgBox("中断しますか?", vbQuestion + vbYesNo) = vbNo Then
    Resume
    Else
    Application.StatusBar = False
    End If

End Sub

< 使用 Excel:Excel2010、使用 OS:Windows7 >


 パソコンの調子が悪いので
手打ちですけど、
Dim x As Variant
x = Application.Dialogs(xlDialogPrinterSetup).Show
Debug.Print x
として戻り値で判断されてはいかがでしょう?

 パソコンがつながったので直しておきました
(SoulMan) 2018/03/05(月) 21:58

 >プリンタを選択し、プリンタを選んだ場合はそのまま印刷する 
読み返してみると↑ここが不親切なので
Debug.Print ActivePrinter
です。
もう寝ます。
おやすみなさいzzzzzzzzzzzzzzzzzzzzz

(SoulMan) 2018/03/05(月) 23:38


 すみません
変数は、
Dim x As Boolean
にして下さい
(SoulMan) 2018/03/05(月) 23:45

 iPhoneからなんでちょっと上手く
書けませんが、お許しを
Sub てすと()
Dim x As Boolean
Do
    x = Application.Dialogs(xlDialogPrinterSetup).Show
    If x = True Then
        If ActivePrinter = "ここは通すプリンター名" Then
        
            ActiveWindow.SelectedSheets.PrintOut 1
        
        End If
    End If
Loop While x = False
End Sub
(SoulMan) 2018/03/06(火) 15:53

SoulManさん

ありがとうございました!
(しげ) 2018/03/07(水) 09:55


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.