ネットワーク経由の印刷で問題発生?原因と対策を教えてください

このQ&Aのポイント
  • Excel2002を使用しているが、ネットワーク経由の印刷に問題がある。特定のプリンターで印刷したいがうまくいかない。接続されているプリンターではなく通常使うプリンターから出力されてしまう。
  • マクロを使用してネットワーク経由での印刷を試みているが、1人は成功しているのにもかかわらず、もう1人は通常使うプリンターから出力されてしまう。
  • 原因はユーザーごとに設定されたプリンターの違い。1人は特定のプリンターを使用するように設定されているが、もう1人は異なるプリンターを使用している。対策として、マクロ内でユーザー名に応じてプリンターを選択するように設定することが必要。
回答を見る
  • ベストアンサー

マクロでネットワーク経由の印刷をしたいのですが

Excel2002を使用しています。2人の人間が各々のPCから 指定のプリンター(通常使うプリンターではない)で 印刷出来るようにしたいのですが、うまくいきません。 プリンターが接続されている「山田太郎」は印刷出来るのですが、 ネットワークを介している「田中花子」は、通常使うプリンターから 出力されてしまいます。 何が原因なのか、ご教授願います。 Sub 印刷確認() タイトル = "印刷確認" メッセージ = "今日の日付で印刷してよろしいですか?" スタイル = vbYesNo + vbQuestion + vbDefaultButton1 + vbApplicationModal yesno = MsgBox(メッセージ, スタイル, タイトル) If yesno = vbYes Then ユーザー名 = Application.UserName Select Case ユーザー名 Case "山田太郎" プリンター = "EPSON PM-840C on Ne03:" Case "田中花子" プリンター = "\\yamada\EPSON PM-840C on Ne0:5" End Select   Application.ActivePrinter = プリンター   ActiveWindow.SelectedSheets.PrintOut Copies:=1, ActivePrinter:= _   プリンター, Collate:=True ThisWorkbook.Worksheets("住所録").Select Range("A3:A10000").ClearContents End If    Range("G14,I14").ClearContents Exit Sub End Sub

質問者が選んだベストアンサー

  • ベストアンサー
  • Wendy02
  • ベストアンサー率57% (3570/6232)
回答No.1

こんにちは。 原因は、 on Ne03:" on Ne0:5" このボート番号が、違うか変わるかどちらかだと思います。 この部分が決まらないようだったら、 On Error Resume Next で、適当にループの中で、数字をインクリメントさせればよいです。

irohani123
質問者

お礼

念の為ポート番号を調べ直してみたら、 以前調べた時と変わっていました。 (別のプリンタドライバを削除した為だと思います)。 単純ミスで申し訳ありません。助かりました。 回答、ありがとうございました。

関連するQ&A

  • エクセルのマクロ

    セルの値が変わったら動くマクロですが、2つ書くとエラーが出ます。 どのように直したらいいでしょうか? Private Sub Worksheet_Change(ByVal Target As Range) Select Case Target.Address If Intersect(Target, Range("EK22")) Is Nothing Then Exit Sub Else Range("EK24:EM28").Select Selection.ClearContents End If End Sub Private Sub Worksheet_Change(ByVal Target As Range) If Intersect(Target, Range("EK24")) Is Nothing Then Exit Sub Else Range("EK27:EM28").Select Selection.ClearContents End If End Sub

  • Execl VBA UserForm1の印刷先

    Execl VBA UserForm1の印刷先を変更したいのですが Execl VBAで困っています。 UserFormの印刷を条件を変えてプリンター1とプリンター2に振り分けたいのですが ネットを検索してもいい方法が見つかりません。 UserFormはOSのプリンターを参照するため思うように印刷できません。 一度下記を試しましたが、試通常使うプリンターでしか印刷出来ません UserFormのプリンター切替方法のご伝授宜しくお願い致します。 =========================================== Sub チェンジプリンター() Dim myPrinter As String myPrinter = Application.ActivePrinter '現在のプリンターを記憶 If Worksheets("DeviceRead-Write").Cells(6, 11).Value = 2 Then 'I6が2ならEPSON_2プリンターに印刷する Application.ActivePrinter = "EPSON_2 on Ne02:" 'プリンターを切り替える Range("A4").Value = Application.ActivePrinter 'プリンターの確認 UserForm1.PrintForm 'フォームの印刷 Application.ActivePrinter = myPrinter 'プリンターを元に戻す Range("A2").Value = Application.ActivePrinter 'プリンターの確認 End If If Worksheets("DeviceRead-Write").Cells(6, 11).Value = 1 Then 'I6が2ならEPSON_1プリンターに印刷する Range("D2").Value = Application.ActivePrinter 'プリンターの確認 UserForm1.PrintForm 'フォームの印刷 End If End Sub

  • シートのマクロについて

    sheet1 をアクティブすると下記のマクロが実行されるようにしたのですが なかなかうまくいきません。 どなたか教えて下さい。 Sub クリア() Dim ans As Integer ans = MsgBox("全てクリアをしてもいいですか?", _ vbYesNoCancel + vbInformation, "クリア実行") Select Case ans Case vbYes Sheets("sheet1").Select Range("B4:W43,Z4:Z43,AA4:AA43").Select Selection.ClearContents Range("B4").Select Sheets("sheet1").Select Case vbNo MsgBox "NO" Case Else MsgBox "中止します" End Select End Sub

  • マクロで二つの構文を繋ぐには

    いつもお世話になります。 WIN7 EXCELL2010 です。 Private Sub Workbook_SheetChange(ByVal Sh As Object, ByVal Target As Range) If Target.Address = "$A$1" Then Sh.Name = Target.Range("A1").Value End Sub ThisWorkbook に上記のマクロに下記のマクロを追加したいのですが、 End Sub の ところを End If End With などに変えたのですがうまくゆきません。 御指導お願いできませんでしょうか。 Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean) Dim myRange As Range Set myRange = Intersect(Target, Range("M3:V27")) If Not myRange Is Nothing Then Select Case Target.Value Case "" Target.Value = "○" Case "○" Target.Value = "●" Case Else Target.ClearContents End Select Cancel = True End If End Sub 宜しくお願いいします。

  • VBAエクセルにて印刷

    こんにちわ。教えてください。VBAでActiveXコントロールをクリック したのち、印刷のプレビューを表示したら、MegBoxメッセージを表示 させ ”はい””いいえ”を選択したいのですがうまくいきません。 ちなみに下記のプログラムです。 Private Sub 印刷_Click() ActiveWindow.SelectedSheets.PrintPreview Dim ans As Integer ans = MsgBox("印刷しますか?", vbInformation + vbYesNo, "確 認") Select Case ans Case vbYes Application.ActivePrinter = "Canon iR C3080/C3580 LIPSLX on Ne05:" ExecuteExcel4Macro "PRINT(2,1,1,1,,,,,,,,2,,,TRUE,,FALSE)" Case vbNo MsgBox "故障履歴印刷をキャンセルします。" End Select End Sub 以上なんですがプレビュー後に”印刷しますが”が聞いてきません。 どうすればいいですか?

  • マクロ作動

    Private Sub Worksheet_SelectionChange(ByVal Target As Range) tm = Time() '現在時間を取得 If tm < TimeValue("08:30:00") Then Exit Sub If tm > TimeValue("09:30:00") Then Exit Sub  Dim ANS As Integer  Dim 値 As String If Sheets("営業確認").Range("D6").Value <> "" Then ANS = MsgBox(Sheets("営業確認").Range("B6") & "のデーターが残っています。クリアしますか?", _ vbYesNo) Select Case ANS Case vbYes Sheets("営業確認").Select Sheets("営業確認").Range("B6:E461").Select Selection.ClearContents Sheets("営業確認").Range("G6:K461").Select Selection.ClearContents Sheets("入力").Select MsgBox "クリアしました" Case vbNo MsgBox "キャンセル" End Select Else End If End Sub プログラムを組みましたが、上記のとおり時間設定している間は『キャンセル』をしてもセルを動かす度にマクロが動いてしまいます。 下記のようなマクロは可能でしょうか。 (1)一番最初にシートが開くとマクロが作動 (2)その後、指定してるシートに値があってもマクロは作動しない (3)また翌日シートを開くとマクロが作動 ※1日1回マクロが作動出来ればいいです

  • EXECL VBAにて自動印刷100枚でフリーズ

    フィリーズの原因 とりあえず、アクティブプリンターのみで印刷を連続すると異常なし 交互に印刷すると今度はリソース不足が出ました。 最後に、EPSON LPプリンターのみに連続印刷でやはりリソース不足が出ました。 どうもアクティブプリンターからの切替でリソースを必要としているみたいですが 対策はをご教示下さい。 ======================================== Sub チェンジプリンター() '印刷切り替え Dim myPrinter As String myPrinter = Application.ActivePrinter '現在のプリンターを記憶 If Worksheets("DeviceRead-Write").Cells(6, 13).Value = 2 Then 'I6が2ならEPSON_2プリンターに印刷する Application.ActivePrinter = "EPSON_2 on Ne00:" 'プリンターを切り替える ActiveSheet.PrintOut 'シートFormの印刷 Application.ActivePrinter = myPrinter 'プリンターを元に戻す End If If Worksheets("DeviceRead-Write").Cells(6, 13).Value = 1 Then 'I6が1ならEPSON LPプリンターに印刷する ActiveSheet.PrintOut 'シートFormの印刷 End If End Sub ==========================================

  • エクセルで繰り返し処理をしたいのですが

    下記のマクロを6行目で展開しています。 これと同じ処理を7行目~36行目めまでさせたいのですが どうやればいいのか教えていただけないでしょうか? sub test() Select Case a Case 2, 3, 4, 5, 6 Range("F6").Select Selection.FormulaR1C1 = _ "=IF(RC[-1]-RC[-2]-0.75-RC[8]-RC[9]<=0,0,RC[-1]-RC[-2]-0.75-RC[8]-RC[9])" Range("H6").Select Selection.FormulaR1C1 = "=IF(-7.75>=RC[9],0,RC[9])" Range("J6").Select Selection.FormulaR1C1 = _ "=IF(IF(RC[-5]<=22,0,(RC[-5]-22-RC[6]))<=0,0,IF(RC[-5]<=22,0,(RC[-5]-22-RC[6])))" Range("B6:W6").Select With Selection.Interior .ColorIndex = 2 .Pattern = xlSolid End With Case 0, 1 Range("F6").Select Selection.ClearContents Range("H6").Select Selection.ClearContents Selection.FormulaR1C1 = "=IF(RC[-5]<=22,0,(RC[-5]-22-RC[6]))" Range("J6").Select Selection.ClearContents Range("B6:W6").Select With Selection.Interior .ColorIndex = 45 .Pattern = xlSolid End With End select End sub

  • ▼マクロ印刷設定について▲

    下記のプログラムはコマンドボタンを押すと フォームが表示され、氏名を選択すると 印刷しますかと表示されOKを押すと 印刷がかかるようになっているのですが… このプログラムを印刷設定ができるようにしたり、 印刷枚数を指定できるようなプログラムに変えるには どうしたら良いでしょうか…;; アドバイスなど宜しくお願い致します…。 '↓ここから――――――― Private Sub CommandButton1_Click() Cells(2, 17) = 名簿.Value yesno = MsgBox("印刷しますか?", vbYesNo + vbQuestion + vbDefaultButton1 + vbSystemModal, "印刷しますか?") If yesno = vbYes Then ActiveWindow.SelectedSheets.PrintOut copies:=1 End If Unload Userform1 End Sub Private Sub UserForm_lnitialize() For i = 1 To 15 'lが0から7まで(2行-2から9行-2まで) 名簿.Addltem Worksheets("データ").Cells(i + 1, 1).Value '名簿という別のシート Next End Sub Private Sub 名簿_Change() End Sub '↑ここまでです――――――

  • このマクロ、何をしているのかわかりますか?

    ' Rows("1:1").Select Selection.Insert Shift:=xlDown Range("A1").Select ActiveSheet.PasteSpecial Format:="テキスト", Link:=False, DisplayAsIcon:= _ False Range("A1:A37").Select Selection.Copy Range("S1").Select Selection.PasteSpecial Paste:=xlPasteAll, Operation:=xlNone, SkipBlanks:= _ False, Transpose:=True Columns("A:A").Select Application.CutCopyMode = False Selection.ClearContents Range("A1").Select End Sub わかる方 お願いいたします!

専門家に質問してみよう