[[20140917221430]] 『プリンタ選択マクロの修正』(minoru) ページの最後に飛ぶ

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

 

『プリンタ選択マクロの修正』(minoru)

お世話になります、
過日、下記のプリンタ選択マクロをご教示いただき
重宝しております。プリンタ選択画面にて
「設定」「OK」「キャンセル」と表示されるのですが
「キャンセル」ボタンを選択しても印刷キャンセルできません。
印刷をキャンセルできるようにマクロを修正したいのですが

if then とありますので Elseifとか end ifとか試しているのですが
よくわかりませんので、よろしくお願いします。

Private Sub プリンタ選択()

    Dim ans As Boolean
    ans = Application.Dialogs(xlDialogPrinterSetup).Show
    If ans Then MsgBox "選択されたプリンタは" & Application.ActivePrinter
 End Sub

< 使用 Excel:Excel2002、使用 OS:WindowsXP >


 >if then とありますので Elseifとか end ifとか試しているのですが 

 その試したコードを見せてください。でないと、何を勘違いされているのか、何を理解されていないのか

 等がわかりません。

 「OK」「キャンセル」ボタンはのどちらが押されたかは 提示されたコードでは、

 変数ans に、その結果が格納されます。

 変数 ans  True ------ OKボタンが押された
              False ------  Falseボタンが押された

 提示されたコードの

 >If ans Then MsgBox "選択されたプリンタは" & Application.ActivePrinter
 If ans = True Then MsgBox "選択されたプリンタは" & Application.ActivePrinter

 これと同じ意味です。

 つまり、プリンタ選択ダイアログが表示され、OKボタンが押された時だけ
 選択されたプリンタ名を表示しています。変数ansがFalse(キャンセルが押された)時は、
 何も表示されませんよね?

 変数を使わなくても

 if Application.Dialogs(xlDialogPrinterSetup).Show then
    '印刷
 end if

 このようなコードにすると、OKボタンが押された時だけ印刷がはじまります。
 もちろん、'印刷の代わりに実際には 印刷するコードを入れるのですよ!!

 以上です

( ichinose) 2014/09/18(木) 06:06


 >If ans Then MsgBox "選択されたプリンタは" & Application.ActivePrinter
 これは
 If ans Then
     MsgBox "選択されたプリンタは" & Application.ActivePrinter
 End If
 と同じです。
(たいふ) 2014/09/18(木) 09:47

ichinose 様
たいふ  様

返信ありがとうございます。
End if と End sub を混同していました。
ichinose様のご指摘どおりで解決いたしました。

(minoru) 2014/09/18(木) 22:14


コメント返信:

[ 一覧(最新更新順) ]


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