[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『プリンタを指定するマクロ』(スピッツてりあ)
初めまして。
マクロ初心者ですが、とても困っています。
どうかご教授ください。
よろしくお願いいたします。
あるブックのシート1(送り状)シート2(荷札)
にそれぞれのプリンタを指定するようにマクロを設定しました。
以前使用していたマクロが Application.ActivePrinter で
これだとポート番号を指定しなければならなく、
番号が変更になる度に、数百のブックのマクロを手動で直さなければなりません。
しかし ActiveSheet.PrintOut ActivePrinter ですと
ポート番号がなくても指定できるので試してみたのですが、
プリンタは指定できたものの、ブックを開くとすぐ印刷が始まってしまいます。
自分のタイミングで印刷する時に、プリンタを毎回選ぶことなく、
切り替わってるだけで良いのです。
ポート番号を指定するマクロの場合は、ブックを開いて、即実行には
なりませんでした。
下記マクロでプリンタは指定できたのですが、ブックを開いたり、
シートを切り替えるたびに、即実行にならないようにすることは可能でしょうか?
これができないと、またポート番号のほうのマクロを使わなければならず、
USBを抜き差ししたり、他のドライバをインストールするたびに
簡単にポート番号が変更されてしまうので、また手動でマクロを変更する
ことになりとても大変です。
何かいい方法はないでしょうか?
どうかご教授ください。よろしくお願いいたします。
●thisworkbook に記述
Private Sub Workbook_Open()
Sheets("送り状").Activate
Application.Goto Range("D6") ActiveSheet.PrintOut ActivePrinter:="プリンタ1" End Sub
●シート1 に記述
Private Sub Worksheet_Activate()
Sheets("送り状").Activate
ActiveSheet.PrintOut ActivePrinter:= "プリンタ1"
End Sub
●シート2 に記述
Private Sub Worksheet_Activate()
Sheets("荷札").Activate
ActiveSheet.PrintOut ActivePrinter:= "プリンタ2"
End Sub
< 使用 Excel:Excel2010、使用 OS:Windows8 >
Private Sub Workbook_Open() Private Sub Worksheet_Activate() ではなく
Private Sub Workbook_BeforePrint(Cancel As Boolean) で、印刷したいときだけ実行するようにすればどうでしょうか。 ただし、他のプリンタで印刷できなくなりますが。
(マナ ) 2015/03/29(日) 09:43
いままでは、どういったコードで処理しておられましたか? 質問のテーマはらはずれますが、 シート1といっておられるのが、"送り状"シートだとして、仮に開いたときに印刷されているとすれば 2部印刷されていませんか? で、もしかしたら、状況によっては印刷されないこともあるのでは? ("送り状"シートをアクティブにした状態でブックを保存して、開き直すと、印刷はされないと思うのですが)
それはさておき、運用がわからないのですが、"送り状"シートなり、"荷札"シートなりを選択しただけで自動印刷という運用なんでしょうか?
もし、そうなら、ThisWorkbook_Open では、"送り状"や"荷札"シート以外をActivateするだけのコードにされたらいいかもしれません。
操作要件がわからないので、スベっていたらごめんなさい。
(β) 2015/03/29(日) 09:50
丁寧なお返事ありがとうございました!
(スピッツてりあ) 2015/03/30(月) 16:32
>今は、フォームボタンを作ってクリックしたら >印刷ができるように作成しています。
印刷には、マクロを使わないのかと考えていました。 マクロからの印刷でしたら、ボタンに登録するマクロを
>ActiveSheet.PrintOut ActivePrinter:= "プリンタ1" や >ActiveSheet.PrintOut ActivePrinter:= "プリンタ2"
にするだけで問題ないのでは?
>Private Sub Workbook_Open() や >Private Sub Worksheet_Activate() は不要です。
(マナ ) 2015/03/30(月) 18:39
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.