• ベストアンサー

EXCEL VBAでプリンタの設定方法について

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:" ではプリンタの設定が変わらず、通常使うプリンターで印刷がされてしまいます。 ワードを開いて印刷することで何か特殊なコードが必要なのではないかと思うのですが、調べても該当するものが出てきませんでした。 どうぞよろしくお願いいたします。

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

  • ベストアンサー
  • lark_0925
  • ベストアンサー率63% (37/58)
回答No.1

WordのActivePrinterを設定しなければならないのですよね?  OApp.ActivePrinter = "AAA on Ne00:" ではないですか?

takohasisa
質問者

お礼

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

その他の回答 (1)

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

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

takohasisa
質問者

お礼

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

関連するQ&A

  • プリンター設定

    プリンター設定を教えて下さい。 Application.ActivePrinter = "AAA on Ne00:" 毎回 No.00 の部分が変わってしまって 初心者な者で、どのように設定していいのかわかりません。 よろしくお願い致します。

  • プリンタ一覧を取得

    社内で複数のプリンタがあります、"複合機""ドットプリンタ""再生紙用プリンタ"などと名前を各クライアントに統一してつけて設定してあります、エクセルのVBAで特定のシートのみ"ドットプリンタ"で印刷するために strAPtr = Application.ActivePrinter で一旦通常のプリンタをバッファリングしておき Application.ActivePrinter = "ドットプリンタ" として印刷をかけ Application.ActivePrinter = strAPtr で戻すということをしたいのですが このドットプリンタがクライアントPCによって ActivePrinter = "ドットプリンタ on Ne02:"になったり ActivePrinter = "ドットプリンタ on Ne00:"になったりクライアントによっては ActivePrinter = "Ne00:のドットプリンタ"になったりして確定できません、 WinAPIを使ってプリンタの一覧の取得・・・という方法がありそうですがエクセルVBAで出来るのでしょうか、願わくばAPIを使わないで実現したいのですが知恵を貸してください

  • 昨日のプリンターの件です

    下記のようなことを記入してよいか迷ったのですが、wendy02さん、教えてください。 下記のように、プリンターを変えたところ、「設定がうまくいきませんでした」と出てきます。 何か、間違っていますでしょうか?但し、プリントは出来ました。 Dim OldPrt As String Dim ActPrt As String Dim i As Integer Dim errFlg As Integer OldPrt = Application.ActivePrinter ActPrt = "\\FMV-DESKPOWER\EPSON PM-4000PX on USB002" ActPrt = Trim(ActPrt) On Error Resume Next For i = 0 To 4 Application.ActivePrinter = ActPrt & " on Ne" & Format$(i, "00") & ":" If Err.Number > 0 Then errFlg = Err.Number Err.Clear Else errFlg = 0 Exit For End If Next i ActPrt = Application.ActivePrinter On Error GoTo 0 If ActPrt = OldPrt Then If errFlg > 0 Then MsgBox "設定がうまく行きませんでした", 48 Else MsgBox "設定はそのままで、使えます。", 64 End If ElseIf errFlg = 0 Then MsgBox "正しく設定されました: " & Application.ActivePrinter End If ''印刷(Excel の場合)

  • VB.NETからExcelを開きプリンタ名を指定

    いつも大変お世話になっています。 VB.NETからExcelを開きプリンタ名を指定方法について ご助力お願いします。 以下の処理は、指定したプリンタ名を Excelのプリンタ名のデフォルト値として設定しています。 ――――――――――――――――――――――― ' Excel.Application の新しいインスタンスを生成する Dim xlApplication As New Excel.Application() Dim xlBooks As Excel.Workbooks ' xlApplication から WorkBooks を取得する xlBooks = xlApplication.Workbooks ' 既存の Excel ブックを開く xlBooks.Open(txtPath.Text) Dim i As Integer For i = 0 To System.Drawing.Printing.PrinterSettings.InstalledPrinters.Count  Try    ’※    xlApplication.ActivePrinter= 「プリンタ名」 & " on Ne" & Format(i, "00") & ":"   Exit For  Catch ex As Exception   Debug.Print(ex.Message)  End Try Next ' Excel を表示する xlApplication.Visible = True ――――――――――――――――――――――― ◆※について 「on Ne」ですが、恐らくネットワークポートを指していると思います。 その他のポートを指す「on Ne」のようなものは他にもあるのでしょうか? 例えば、「on LPT」?「on COM」?とか… ◆指定したプリンタ名のポート(on Ne)取得について 指定したプリンタが使用しているポート(on Ne)を取得する方法が ありましたら教えてください! 以上です。よろしくお願い致します。

  • エクセルのマクロでプリンタを指定したいのですが

    エクセルのマクロで共有のネットワークプリンタを指定しているのですが Application.ActivePrinter = "*********** on Ne**:" Ne**の部分がパソコンを再起動すると変更されてしまうようでうまくいきません。~on Ne**:の記述なしでプリンタを指定する方法はないでしょうか?

  • 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

  • EXCEL2007 VBAでのプリンタ切り替えについて

    いつもお世話になっております。 EXCELで帳票出力をする場合にプリンタを切り替えて(通常使うプリンタを変更して) 行おうと、いろいろ調べまして下記のようなプログラムを作成して実行しました。 Dim OldPrinter As String OldPrinter = Application.ActivePrinter With CreateObject("WScript.Network") .SetDefaultPrinter "EPSON LP-6100" End With ~~~~印刷処理~~~~ Application.ActivePrinter = OldPrinter WSHによるデフォルトプリンタの切り替えはうまく行くのですが、その後に もともとの通常使うプリンタに戻す処理がうまくいかず、プリンタが切り替わったまま になってしまいます。 いろいろと調べましたが、わかりませんでした。 参考になるサイトなどでも構いませんのでお願いいたします。

  • VBAでExcelファイルのPDF自動化

    表題の通りの事をしたいと思っています。とあるサイトで参照したvbaコードで、デスクトップにファイルをExcelのブック名と同じ名前でPDFに変換するところまで出来ました。あと自動でやりたいことは2つあり、(1)とあるセルの情報を読み込み保存名にしたい【○○○.pdfという具合に】、(2)生成したpdfファイルの保存先をマクロ内に設け指定したいです。【\\サーバー名\○○\△△\□□などのように】 現状までのコードを表記します。わかる方いらっしゃいましたら、お手数ですがアドバイスお願いします。 自分はマクロは手を出したばかりで、初心者です。宜しくお願いします。 Sub pdf() Dim i As Integer Dim s_prn As String, oldprn As String, flg As Boolean On Error Resume Next s_prn = "Adobe PDF" 'インストールされているPDFプリンタの名前 oldprn = ActivePrinter 'アクティブプリンタを取得 If InStr(oldprn, s_prn) = 0 Then '切替えたいプリンタがアクティブプリンタでない場合 flg = False 'プリンタ切替フラグ For i = 0 To 99 ActivePrinter = s_prn & " on Ne" & Format(i, "00") & ":" '「"プリンタ名"on NeXX:」形式PC用 ActivePrinter = "Ne" & Format(i, "00") & ": の " & s_prn '「NeXX: の "プリンタ名"」形式PC用 If ActivePrinter <> oldprn Then flg = True 'プリンタ切替成功 Exit For End If Next i If flg = False Then 'プリンタ切替失敗の場合 MsgBox "プリンタ名:" & s_prn & " が見つかりません。" Exit Sub End If End If ActiveSheet.PrintOut ActivePrinter = oldprn 'アクティブプリンタを元に戻す MsgBox "終了しました。" 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 以上なんですがプレビュー後に”印刷しますが”が聞いてきません。 どうすればいいですか?

  • 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 ==========================================

専門家に質問してみよう