dポイントプレゼントキャンペーン実施中!

エクセル2002を使用しています。VBAはまったくわかりません。
マクロの自動登録で印刷を記録すると、通常使うプリンタから
出力されるようですが、LANでプリンタ複数使用可能な環境です
ので、いちいち通常使うプリンタを変更するのではなく、マクロ
実行時にプリンタを選択したく思います。
 因みに、以下のマクロはSheet1に値を入力し、Sheet1の値をコピー
したSheet2を印刷するというマクロです。このマクロのどの部分に
コードを付け加えればプリンタをこのマクロ実行時に選択可能でしょうか?
もしくはマクロではプリンタを選択できないのでしょうか?
どうぞよろしくお願いいたします。

******************************************************************
Sub 印刷()
Sheets("Sheet2").Select
ActiveWindow.SelectedSheets.PrintOut Copies:=1, Collate:=True
Sheets("Sheet1").Select
End Sub
*******************************************************************

A 回答 (5件)

#4です。



WinAPIを使ってプリンタ一覧を取得。
VBAでActivePrinterを取得。
ユーザーの指示によりActivePrinterを設定。
印刷処理。
ActivePrinterを元に戻す。

ってことをやるには相当の技術力が必要になります。
ここはひとつ、
Application.Dialogs(xlDialogPrint).Show
こうして印刷ダイアログを表示するだけにとどめておいてはどうでしょうか。
あとはユーザーが好きなプリンタを選択して[OK]を押せば印刷されます。
    • good
    • 5

あのー・・・


使用環境が書いてないのですが・・・

・複数のPCで使用するマクロなのですか?
・それとも1台のPCで使用するが、出力するプリンタをフレキシブルに変更したい、ってことですか?

前者なら各PCの標準プリンタに出力されるので問題ないんじゃないかと思いますが・・・
後者であれば他の方の回答を参考にしてください。
    • good
    • 2
この回答へのお礼

回答ありがとうございます。
説明足らずで申し訳ありませんでした。
環境的には前者+後者のようなものです。
すなわち、各PCともに複数のプリンタドライバを入れている
ため(インクジェットとレーザプリンタなど)、出力の都度
どのプリンタに出力するのか選択したいのであります。

お礼日時:2002/09/23 01:03

まずは、マクロの記録時に、プリンターを選択するようなアクションをしてみてください。


そうすると、

Application.ActivePrinter = "******"

みたいなスクリプトがPrintOutの前に書かれませんか?

手っ取り早そうなのは、プリンターごとにマクロを用意することでしょうか・・
もしくは、
"******"っていうのを変数にします。例えば、

myPrinter = "*******"
Application.ActivePrinter = myPrinter

てな感じで。
ということは、myPrinterの値を入力により制御できればいいでしょう。
例えば、inputbox関数で、何らかの数値を入力させて、
その数値に対してmyPrinterの値を変更するとか。

どうでせう?
    • good
    • 2
この回答へのお礼

回答ありがとうございます。
できるかどうかわかりませんがこのように試してみようと
思います。

お礼日時:2002/09/23 01:05

PrintOutの前に、ActivePrinterを入れるとどうですか。


(例)Application.ActivePrinter = "USBPRN01 の Canon BJ S300"
ActivePrinter プロパティは取得・設定とも可能とあり。
テストできる環境に無いので曖昧で済みません。
(ListBoxなどで、=の右辺に持ってくるプリンタのIDを
決めさせてセットする事も可能かと思います。)
    • good
    • 0
この回答へのお礼

回答ありがとうございます。
ActivePrinterプロパティというのをヘルプで調べて
やってみようと思います。

お礼日時:2002/09/23 01:07

 PrintPreviewでプレビューしてから、印刷を選ぶ、というのはだめなんでしょうか?


 簡単に解決するにはこの方法しかないと思います。
    • good
    • 1
この回答へのお礼

回答ありがとうございます。
試しにやってみました。
欲張りなことを言ってすみませんが、できれば
プリンタを指定したらプレビュー無しに印刷で
きればと考えております。

お礼日時:2002/09/23 00:58

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています