• ベストアンサー

エクセルマクロ印刷時にプリンタを指定できますか?

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

質問者が選んだベストアンサー

  • ベストアンサー
noname#102878
noname#102878
回答No.5

#4です。 WinAPIを使ってプリンタ一覧を取得。 VBAでActivePrinterを取得。 ユーザーの指示によりActivePrinterを設定。 印刷処理。 ActivePrinterを元に戻す。 ってことをやるには相当の技術力が必要になります。 ここはひとつ、 Application.Dialogs(xlDialogPrint).Show こうして印刷ダイアログを表示するだけにとどめておいてはどうでしょうか。 あとはユーザーが好きなプリンタを選択して[OK]を押せば印刷されます。

その他の回答 (4)

noname#102878
noname#102878
回答No.4

あのー・・・ 使用環境が書いてないのですが・・・ ・複数のPCで使用するマクロなのですか? ・それとも1台のPCで使用するが、出力するプリンタをフレキシブルに変更したい、ってことですか? 前者なら各PCの標準プリンタに出力されるので問題ないんじゃないかと思いますが・・・ 後者であれば他の方の回答を参考にしてください。

enako
質問者

お礼

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

  • 2002pon
  • ベストアンサー率48% (42/87)
回答No.3

まずは、マクロの記録時に、プリンターを選択するようなアクションをしてみてください。 そうすると、 Application.ActivePrinter = "******" みたいなスクリプトがPrintOutの前に書かれませんか? 手っ取り早そうなのは、プリンターごとにマクロを用意することでしょうか・・ もしくは、 "******"っていうのを変数にします。例えば、 myPrinter = "*******" Application.ActivePrinter = myPrinter てな感じで。 ということは、myPrinterの値を入力により制御できればいいでしょう。 例えば、inputbox関数で、何らかの数値を入力させて、 その数値に対してmyPrinterの値を変更するとか。 どうでせう?

enako
質問者

お礼

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

  • imogasi
  • ベストアンサー率27% (4737/17069)
回答No.2

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

enako
質問者

お礼

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

  • KojiS
  • ベストアンサー率46% (145/312)
回答No.1

 PrintPreviewでプレビューしてから、印刷を選ぶ、というのはだめなんでしょうか?  簡単に解決するにはこの方法しかないと思います。

enako
質問者

お礼

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

関連するQ&A