[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『マクロで印刷先指定』(MMM)
マクロで印刷先のプリンタを選択していても
うまくそのプリンタに出力できません。
そこまでの設定は無理なのでしょうか?
よろしくお願いいたします。
コード見てないのでなんとも言えませんが http://nofx2.txt-nifty.com/it/2009/04/vba-dbae.html
↑見る限り可能ですね。 私もマクロの記録で試してみましたができました。 別パソコンでできるかどうかは試していません。
(通りすがり)
(MMM)
記録されたマクロ提示されてはいかがでしょう? ポート番号など見られて困るようであれば都度適当な値に置き換えればよろしいかと思います。 (通りすがり)
'
Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5")).Select
Sheets("Sheet1").Activate
Application.ActivePrinter = "DocuWorks Printer on Ne03:"
ExecuteExcel4Macro _
"PRINT(1,,,1,,,,,,,,2,""DocuWorks Printer on Ne03:"",,,,FALSE)"
End Sub
このようになっています。
誰がファイルを開いてもDocuWorks Printer に印刷されるようにしたいのですが
通常使うプリンターのほうに印刷されてしまう人もいるんです。
ご教授ください。
(MMM)
お伺いしてみるのですが。。。
これは、同じPCでの事でしょうか? それとも、違うPCでの事でしょうか?
ファイルもPCも同じなのに、使う人によって上手く行く人と行かない人がいる。 ファイルは一緒だが、違うPCの場合、上手く行くPCと行かないPCがある。
(HANA)
コメントありがとうございます。 違うPCです。
[[20070302100911]] 『プリンター指定印刷』(ただの鬼)
この方のを参考にしていて気付きましたが、ここが問題のようです。
"DocuWorks Printer on Ne03:" の『Ne03』にも『Ne02』にも印刷できるようにできないでしょうか? "DocuWorks Printer"含む(アスタリスク)も使えないんですねぇ。 なんらかの入力をすればできる気がするのですがわかりません。。。 よろしくお願いいたします。
(MMM)
こんな感じで。。。? [[20090210105145]] 『リモートプリントのマクロ』(バディ)
上手く行くと良いですが。。。
(HANA)
私も同じようなことで悩んだことがあります。 下記が参考になるかもです。 [[20070911131837]] 『ネットワークプリンタ』(純丸) (純丸)(o^-')b
HANAさん、純丸さん、ありがとうございます。 ですが、知識不足のため応用できませんでしたf^_^; ちなみにセキュリティ厳しくてHPやブログはブロックされてあまり見れません。 例文お願いできないでしょうか? よろしくお願いします。
(MMM)
う〜ん、試せないので試してみて貰いたいのですが。。。
↓じゃ駄目?
'------
Sub プリンタ切換()
Dim pn As String
pn = Application.ActivePrinter
ActiveSheet.PrintOut , ActivePrinter:="DocuWorks Printer"
Application.ActivePrinter = pn
End Sub
'------
(HANA)
できましたー!! でも…全シート選択していたのが外れてしまうんですけど なぜでしょうか??? たびたびすみません。。。
(MMM)
アーアクティブシートじゃないとポート指定しなくちゃいけないとか書いてありましたねぇ…。
一個ずつアクティブにして印刷する必要があるかもです。
sub プリンタ切換()
dim pn as string
pn = application.activeprinter
for each sh in worksheet
sh.activate
activesheet.printout ,activeprinter:="DocuWorks Printer"
application.activeprinter = pn
next
end sub
でいいのかな・・・
(通りすがり)
うー。。。
実行時エラー'13': 型が一致しません。
というエラーが出てしまいました。。。 一個ずつアクティブにしてマクロを組んだらいいということですか?
(MMM)
sub プリンタ切換()
dim pn as string
pn = application.activeprinter
for each sh in worksheets
sh.activate
activesheet.printout ,activeprinter:="DocuWorks Printer"
application.activeprinter = pn
next
end sub
あ sつけ忘れてた 今度はどうでしょう??
(通りすがり)
1枚目だけアクティブにすればよくないですか? 通りすがりさんのコードをお借りして、
Sub プリンタ切換()
Dim pn As String
Dim sh As Worksheet
Dim flg As Integer
pn = Application.ActivePrinter
flg = 1
For Each sh In Worksheets
If flg = 1 Then
sh.Activate
ActiveSheet.PrintOut ActivePrinter:="DocuWorks Printer"
flg = 0
Else
sh.PrintOut
End If
Next
Application.ActivePrinter = pn
End Sub
(純丸)(o^-')b
ありがとうございます!でました!! ちなみに、プレビュー画面で止めることはできないでしょうか? 次から次にすみません。。。
(MMM)
>全シート選択していたのが外れてしまうんですけど >なぜでしょうか??? えっと。。。。 ActiveSheet.PrintOut , ActivePrinter:="DocuWorks Printer" ~~~~~~~~~~~ アクティブシートをプリントアウト って成っているからでしょうね。
タブン ActiveWindow.SelectedSheets.PrintOut , ActivePrinter:="DocuWorks Printer" 選択シートを~~~~~~~~~~~~~~~~プリントアウト にすれば、選択解除はされないんじゃないかと思いますが
選択しなくても動きそうですか?
'------
Sub プレビューも()
Dim pn As String, prs As Object
Set prs = Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5"))
pn = Application.ActivePrinter
prs.PrintOut Preview:=True, ActivePrinter:="DocuWorks Printer"
Application.ActivePrinter = pn
Set prs = Nothing
End Sub
'------
ちなみに、ブック全体(全部のシート)を印刷すれば良いなら
ActiveWorkbook.PrintOut 〜
で良いかなぁ。。。
一寸やってみてください。
(HANA)
ご教授ありがとうございます。レス遅くてすみません。。。
ActiveWorkbook.PrintOut はどこに置き換えれるんですか?
ちなみ新たな要求が… プレビュー画面で止まって プリンター"DocuWorks Printer"か"Printer S"か選択して印刷はできないでしょうか?
皆さんからのご教授の結果、今こうなってます。
Sub Macro3() ' ' Macro3 Macro '
'
Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5")).Select
Sheets("Sheet1").Activate
'デフォルトのブリンターを取得
defo_printer = CreateObject("Excel.Application").ActivePrinter
'印刷プレビュー
Dim pn As String, prs As Object
Set prs = Sheets(Array("Sheet1", "Sheet2", "Sheet3", "Sheet4", "Sheet5"))
pn = Application.ActivePrinter
prs.PrintOut Preview:=True, ActivePrinter:="DocuWorks Printer"
Application.ActivePrinter = pn
'プリンターをデフォルトに戻す
Application.ActivePrinter = defo_printer
'シートの選択を解除
Sheets("Sheet1").Select
End Sub
お願いします。 (MMM)
失礼ですが、私が載せたコードの意味の理解に 勤めてい頂いていますか?
また、私が書いている事を理解しようと 努力して頂けていますか?
>>ActiveSheet.PrintOut , ActivePrinter:="DocuWorks Printer" >>~~~~~~~~~~~ アクティブシートをプリントアウト
>>ActiveWindow.SelectedSheets.PrintOut , ActivePrinter:="DocuWorks Printer" >>選択シートを~~~~~~~~~~~~~~~~プリントアウト
と書いた後に >>ちなみに、ブック全体(全部のシート)を印刷すれば良いなら >> ActiveWorkbook.PrintOut 〜 >>で良いかなぁ。。。
と書いているのに、 >ActiveWorkbook.PrintOut >はどこに置き換えれるんですか? と言う御質問は「本当に読んでもらえてるのかな?」と思います。
また、
>'デフォルトのブリンターを取得
> defo_printer = CreateObject("Excel.Application").ActivePrinter
変数 = ・・・.ActivePrinter と言う記述で
デフォルトのプリンタを取得すると分かっている(書いてある?)のにその下に
>pn = Application.ActivePrinter
が残してあるのも「ちゃんと見てるのかな?」と思ってしまいます。
それぞれ何処が違うのか、見比べてもらっていますか?
それに最後に載せたコードは ・選択しなくても動きそうですか? →以下の様に書けば .Select が不要 ・プレビューも →以下の様に書けば プレビューされる と言うつもりのコードですが >皆さんからのご教授の結果、今こうなってます。 のコードにしないと目的の事が出来ませんか?
当初のコードは Sheet1〜Sheet5 を印刷するコードだったと思いますが 実際はブック全体が印刷出来れば良いのですか? それとも、今回のコードとは別に、ブック全体を印刷するコードも 知っておきたいと言う事での質問でしょうか?
いずれにしても、これに関しては マクロの記録を試して見て下さい。 印刷設定の中に ブック全体が印刷出来る設定が有ります。 また、その時にプリンタを切り替える。印刷プレビューもしてみる。 と、今回のコードの作成に非常に有用なコードが得られると思います。
それから >プリンター"DocuWorks Printer"か"Printer S"か選択して印刷 に関しては、どう言った理由でその様な事が必要なのでしょう? 例えば、 ・片方のプリンタにしか出力出来ないPCがある ・使用者に近いプリンタから印刷出来ると便利 ・その時の気分(他の人が使っていない方とか)で使用プリンタをその都度決めたい 等。。。?
(HANA)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.