アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。

私は社内でWin98SE、EXCEL97を使用して色々作成し
社内の方々の各パソコンに送って、使用してもらっています。

しかしサーバー上に接続されている通常使うプリンタでないネットワークプリンタの印刷で問題がでました。
私の環境と同じWin98、Excel97だと問題ないのですが、
社内の方でXP、EXCEL2000の環境の方々が結構います。
その環境ですと、エラーが出てしまいます。


ActivePrinter = "ネットワークプリンタ名 on NExx:"
と言ってXP、EXCEL2000の環境では、on NExx:のポートを
記述しないとエラーが出てしまいます。
(Win98、Excel97では on NeXXの記述は不要です)
※上記のネットワークプリンタ名はExcelで入力します。

このポートを取得するには、どのような方法があるのでしょうか?

また、簡単にWin98、Excel97の時のように、Nexx等を
設定しない方法をご存知の方よろしくお願い致します。

よろしくお願い致します。

A 回答 (2件)

こんには。

以下は、Windows Script で通常使うプリンタを変更し、
プリントプレビューして、VBA で元のプリンタに戻してます。
Win2000 Excel2000 で動作確認しました。

Dim sActivePrinter As String

With Application
sActivePrinter = .ActivePrinter
MsgBox sActivePrinter

With CreateObject("WScript.Network")
.SetDefaultPrinter "変更するプリンタ名"
End With

ActiveWindow.SelectedSheets.PrintPreview
.ActivePrinter = sActivePrinter
End With

"変更するプリンタ名" には "‥ on NExx" は必要ありません。

注意点は変更直後、エクセルは通常使うプリンタをロストします。
しかし、プリントプレビューは成功します。(^_^;

なぜロストするか謎ですが、プレビュー後に元に戻しているので問題ない、はず。
    • good
    • 0
この回答へのお礼

ありがというございました。

無事できました。
しかし、この環境による違いには参りました。

感謝いたします。

お礼日時:2005/07/30 16:27

私も悩みました。

マクロを書くと、その点でエラーになりました。一応、対象のPCから普通にプリントをかけると一瞬on NE01とか出るので、その番号を入れたのですが、これが変わる場合があるのです。
これには悩みました。で、結局は通常に使うプリンタにして印刷をかけるようなマクロにしました。
これだと、いちいち通常に・・・に変えなくてはいけないのですが(また元に戻す必要もある)他の方法は見つかりませんでした。(;^_^A アセアセ…
多分、サーバーの方で管理しているようなのですが、何故番号まで変わるのかが分かりませんでした。

mono_printer_check:
printer_name = Application.ActivePrinter

If InStr(printer_name, G_MONO_PRINTER_NAME) = 0 Then
If MsgBox("使用するプリンタを " & G_MONO_PRINTER_NAME & " に設定して、OKボタンを押して下さい。", vbOKCancel) = vbOK Then
GoTo mono_printer_check
Else
print_flg = False
End If
End If
参考まで。(この記述は私のPCのものなので、このままでは使用出来ないと思います。)
    • good
    • 0
この回答へのお礼

このポートNEXXに完全に振りまわされてしまいました。

アドバイスどうもありがとうございました。

お礼日時:2005/07/30 16:28

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

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