[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『プリンタの指定』(aki)
ボタン1つで印刷できる様にマクロを自動記録させました。 Application.ActivePrinter = "DocuCentre Color 400 on Ne06:"
上記のステートメントになるのですが、on ポート名の部分が、ネットワーク上の
プリンタを使用するせいか、私のPCでは on Ne06 で印刷指示するのですが、
他のPCでは エラーを起こしてしまいます。 無理かもしれませんが、
どのPCからもこのプリンタに印刷指示できる方法があるのでしょうか?
宜しくお願いします。
Excel2000 Windows Windows2000
> 他のPCでは エラーを起こしてしまいます... その[他のPC]には、Docucentreのドライバーはインストールされていますか?
(kazu)
インストールされています。。。 自分のPCでも前に自動記録させた時には on Ne05:でした。 少し間が空くと on Ne○○で動かなくなり、その都度 自動記録させてきました。(○○の数字がその度に変わります。) ですので、その部分を固定というか汎用性のある指示にしたいのですが。。
プリンタのプロパティのポート名(FX-○○○○EC)とも入れてみたのですが、
ダメでした。
(aki)
多分プリンターとプリンタードライバのミスマッチだと思いますが、
> 他のPCでは エラーを起こしてしまいます... どういうエラーが起きますか?
(kazu)
「実行時エラー’1004’:
’ActivePeinter'メソッドは失敗しました:'_Application'オブジェクト」
のメッセージが出て、印刷ができません。
プリンターはコピー機で印刷もできるものです。社内ネットワーク上に
直接接続されているらしいのですが。。。(←いまいち良くわかっておりません。。)
(aki)
それなら、Application.ActivePrinter = "DocuCentre Color 400 on Ne06:" はいらなくて .printout でいいのでは・・・
あまり詳しくはないのですが、常にactiveになっていれば、プリンターの指定は必要ないと思いますが・・・(hisa)
素直にプリンタ選択させてはいかがでしょう。 Sub プリンタ選択() Dim tmp As Variant tmp = Application.Dialogs(xlDialogPrinterSetup).Show If tmp = False Then Exit Sub End Sub (KAMIYA)
と、提案した直後でナンですが、 使用可能なプリンタ名称とその数を得るには? http://keep-on.com/excelyou/2000lng4/200004/00040137.txt こちらも参考になるのではないでしょうか。 (KAMIYA)
プリンタの選択でほぼ上手くいったのですが、選択してから
そのダイアログボックス上の設定ボタンを押すと通常使用の
プリンタの設定しかできません。一旦OKボタンで抜けてから、
もう一度プリンタ選択のダイアログボックスを出すと印刷に使用したい
プリンタの設定に入れます。
1度ダイアログボックスを出現させてから設定もしてOKにしたいのですが、
If文を応用すればいいのでしょうか??
(aki)
だーっ、「プリンタプロパティ」の設定ですか? 以前調べたことはありますが、「プリンタプロパティの設定」の ダイアログを表示するだけでもAPI関数だの、VBScript(だったかな?) の参照設定だの、ユーザー定義のオブジェクト変数だのと、簡単そうな割には オオゴトで、とても独学、片手間の私には手におえません。 VBAではなくて、VBプログラミングの知識がないと・・・・。 わたしにはいまのところ「なんやの、それ」の世界。 うーん、詳しい人、レスくれませんかね? (KAMIYA)
あまり使いたくない手動方式ですが、on error を使ってこんな方法もありかと。
Function prt_1(prt_cmd) prt_1 = False On Error GoTo er01 MsgBox prt_cmd Application.ActivePrinter = prt_cmd prt_1 = True Exit Function er01: MsgBox "Error : " & prt_cmd Exit Function End Function
Sub prt_test() ret = prt_1("DocuCentre Color 400 on Ne06:") If ret = False Then ret = prt_1("\\2000SERV-46Z2BO\Canon BJ S600 on Ne01:") If ret = False Then MsgBox "プリント処理に失敗しましたakiさんHELP" End If End If End Sub
(kazu)
KAMIYAさん、kazuさんありがとうございます。 あまり使いたくないという手動方式とやらに素人の私が 手を出すのも怖いので、最初KAMIYAさんに教えてもらったコードに Dim tmp As Variant Dim Bmp As Variant
tmp = Application.Dialogs(xlDialogPrinterSetup).Show
If tmp = False Then Exit Sub
Bmp = Application.Dialogs(xlDialogPrint).Show If Bmp = False Then Exit Sub
と命令文を追加して、プリンタを選択したら、 すぐ印刷ダイアログボックスを出す様にしました。 これで各自で印刷内容の設定をしてもらう事にします。。。
でもkazuさん提案のコードも興味があるので、早速試してみます。
(aki)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.