VBAでリストにプリンター一覧を追加し、選択したプリンタでPDFを印刷する。
サイトが引っ越しました。→https://scombu.com
約1秒後に自動的にリダイレクトします。切り替わらない場合はリンクをクリックしてください。
以下の感じでリストにアイテムを追加する。
Private Sub Form_Load() 'フォーム読み込み時 Dim prt As Printer 'すべてのプリンタを列挙してコンボボックスの値集合ソースに追加 For Each prt In Application.Printers Me.リスト10.AddItem prt.DeviceName Next prt End Sub
ボタンが押されたら、PDFの印刷をするのですが、
ここでどのプリンタを選択するかは上記でセットしたリストの値に置き換えています。
Private Sub コマンド12_Click() '[印刷]ボタンクリック時 'プリンタ変数を宣言 Dim prtDefault As Printer '現在のプリンタ設定を退避 Set prtDefault = Application.Printer 'これがデフォルトプリンタ '選択されたプリンタの情報を設定 Set Application.Printer = Application.Printers(Me.リスト10.Value) '印刷するぞ 'シェルオブジェクトの作成 Dim shellObj As Object Set shellObj = CreateObject("WScript.shell") Dim exeStm As String 'コマンドラインの文字列を作成する exeStm = "AcroRd32.exe /t" & " " & "C:\Users\XXXXX\Desktop\test.pdf" & " " & Application.Printer.DeviceName shellObj.Run (exeStm) '印刷する 'プリンタ設定を元に戻す Set Application.Printer = prtDefault Set prtDefault = Nothing End Sub
excelファイルの印刷時にプリンタを指定するならば、以下の感じで!
myExcel.ActiveWorkbook.PrintOut ActivePrinter:=Me.リスト10