プロが教えるわが家の防犯対策術!

EXCEL VBAのプリンタの設定方法について質問があります。

Dim oApp As Object
Dim WFM As Strin
WFM = "\\Cl111\フォルダ\ファイル\" &Range("C3").Value & ".doc"

Set oApp = CreateObject("Word.Application")  ’ワード起動
oApp.Visible = True
oApp.Documents.Open WFM  ’文書を開く
Application.ActivePrinter = "AAA on Ne00:"  ’プリンタ設定
oApp.activedocument.PrintOut Copies:=1, Background:=False  ’印刷
oApp.Quit SaveChanges:=False  ’ワード終了
Set oApp = Nothing

このようなコードで、(1)ワードを開き、(2)プリンタを設定し、(3)印刷をする、という作業をしたいのですが、
Application.ActivePrinter = "AAA on Ne00:"
ではプリンタの設定が変わらず、通常使うプリンターで印刷がされてしまいます。
ワードを開いて印刷することで何か特殊なコードが必要なのではないかと思うのですが、調べても該当するものが出てきませんでした。
どうぞよろしくお願いいたします。

A 回答 (2件)

WordのActivePrinterを設定しなければならないのですよね?



 OApp.ActivePrinter = "AAA on Ne00:"

ではないですか?
    • good
    • 1
この回答へのお礼

ありがとうございました。出来ました!
ワードのプリンタを設定しないといけないことが抜けていました。
またよろしくお願いします。

お礼日時:2009/02/19 22:10

こんにちは、



Excelからのようですが、

>Application.ActivePrinter = "AAA on Ne00:"
  ↓
oApp.ActivePrinter = "AAA on Ne00:"

としても、"AAA on Ne00:" のポートの 00 は、キメウチで出きるのでしょうか。
Excel側は、ポート名なくてもできますが、Wordにはそのようではないようですので、
Win32 APIの
Declare Function EnumPrinters を使用するのか、
ポート名を入れたものを、ループで、ポートの数字を加えて行って、err =0 で、通ったら、実行するという方法でよいのではないでしょうか。
    • good
    • 1
この回答へのお礼

"AAA on Ne00:" のポートの00 をキメウチでやってみましたが
そのままできました。ありがとうございました。
またよろしくお願いいたします。

お礼日時:2009/02/19 22:12

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

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