Excel VBAで使用するプリンターを切り替える|ActivePrinter

プリンタを切り替え印刷するVBA




Homeに戻る > Excel 数値・文字列・検索・印刷のTipsへ


前回掲載した「プリンタ一覧を取得する」を利用し、使用するプリンタを切り替えるVBAを掲載しました。

使用するプリンタを切り替えるには、ActivePrinterプロパティを使用します。

ここでは指定したプリンタに切り替え印刷します。

ActivePrinterプロパティの構文

使用しているプリンタ名を返すか、使用するプリンタにセットします。

プリンタ名を取得:Application.ActivePrinter

使用するプリンタにセット:Application.ActivePrinter = アクティブプリンタ名



使用するプリンタを切り替え印刷する

Excelシート画面

プリンタ一覧ボタンをクリックするとプリンタ一覧が表示されます。

C列はプリンタ名、E列は通常使うプリンタならTRUE、そうでなければFALSEと表示されます。

B列にマークを入れ[プリンタの切り替え」ボタンをクリックします。

すると、そのプリンタに切り替え印刷します。

プリンタを切り替えるExcelシート


Excel VBA実行コード

■ VBA入力画面

VBA入力画面

■ VBAコード

Option Explicit

Private Function MyGetPrinterB() As Long
    Dim lrow As Long
    Dim tobj As Object
    Dim tInstPrn As Variant
    Dim tprn As Object
    
    lrow = 6
    Set tobj = GetObject("winmgmts:{impersonationLevel=impersonate}!\\.\root\cimv2")
    Set tInstPrn = tobj.ExecQuery("Select * from Win32_Printer")
    For Each tprn In tInstPrn
        Cells(lrow, 3) = tprn.Name
        Cells(lrow, 4) = tprn.Location
        Cells(lrow, 5) = tprn.Default
        lrow = lrow + 1
    Next
    MyGetPrinterB = lrow
End Function

Private Sub MySetPrinterA(sPrn As String)
    ActiveSheet.PrintOut ActivePrinter:=sPrn
End Sub

Private Sub MySetPrinterB(sPrn As String)
    Dim sPush As String
    
    sPush = Application.ActivePrinter
    ActiveSheet.PrintOut ActivePrinter:=sPrn
    Application.ActivePrinter = sPush
End Sub

Private Sub CommandButton1_Click()
    Dim i As Long
    Dim lMaxRow As Long
    
    lMaxRow = MyGetPrinterB
    
    For i = 6 To lMaxRow
        If Cells(i, 2) <> "" Then
            MySetPrinterA Cells(i, 3)
            Exit For
        End If
    Next
    MyGetPrinterB
End Sub

Private Sub CommandButton2_Click()
    Dim i As Long
    Dim lMaxRow As Long
    
    lMaxRow = MyGetPrinterB
    
    For i = 6 To lMaxRow
        If Cells(i, 2) <> "" Then
            MySetPrinterB Cells(i, 3)
            Exit For
        End If
    Next
    MyGetPrinterB
End Sub



Homeに戻る > Excel 数値・文字列・検索・印刷のTipsへ

■■■
このサイトの内容を利用して発生した、いかなる問題にも一切責任は負いませんのでご了承下さい
■■■
当ホームページに掲載されているあらゆる内容の無許可転載・転用を禁止します


Copyright (c) Excel-Excel ! All rights reserved