ERLANDSEN DATA CONSULTING Excel & VBA Tips   Information in English / Informasjon på engelsk

Disse websidene oppdateres ikke lengre og er kun tilgjengelig for historikken sin skyld.

Klikk her for å gå til den oppdaterte informasjonen.

Endre standardskriver

Ved å endre egenskapen Application.ActivePrinter kan du bestemme hva som skal være standardskriver. Dette kan være nyttig dersom du f. eks vil skrive ut et enkelt regneark på en annen skriver en gang i blant. Fremgangsmåten er som følger:

Sub SkrivUtTilEnAnnenSkriver()
Dim strCurrentPrinter As String
    strCurrentPrinter = Application.ActivePrinter ' lagre den aktive skriveren
    On Error Resume Next ' ignorer utskriftsfeil
    Application.ActivePrinter = "microsoft fax on fax:" ' bytt til en annen skriver
    ActiveSheet.PrintOut ' skriv ut det aktive arket
    Application.ActivePrinter = strCurrentPrinter ' bytt tilbake til den originale skriveren
    On Error Goto 0 ' gjenoppta normal feilhåndtering
End Sub

Skriv ut til en nettverksskriver

Eksempelmakroene nedenfor viser hvordan man kan få tak i det fulle navnet til en nettverksskriver (nyttig når navnet til nettverksskriveren kan endres) og skriver ut et regneark til den valgte skriveren:

Sub SkrivUtTilNettverksSkriver()
Dim strCurrentPrinter As String, strNetworkPrinter As String
    strNetworkPrinter = GetFullNetworkPrinterName("HP LaserJet 8100 Series PCL")
    If Len(strNetworkPrinter) > 0 Then ' fant den aktuelle nettverksskriveren
        strCurrentPrinter = Application.ActivePrinter
        ' bytt til nettverksskriveren
        Application.ActivePrinter = strNetworkPrinter
        Worksheets(1).PrintOut ' skriv ut et regneark
        ' bytt tilbake til den opprinnelige skriveren
        Application.ActivePrinter = strCurrentPrinter
    End If
End Sub

Function GetFullNetworkPrinterName(strNetworkPrinterName As String) As String
' returnerer det fulle nettverksnavnet til en nettverksskriver
' returnerer en tom tekststreng dersom skriveren ikke finnes
' eksempel: GetFullNetworkPrinterName("HP LaserJet 8100 Series PCL")
' kan returnere "HP LaserJet 8100 Series PCL on Ne04:"
Dim strCurrentPrinterName As String, strTempPrinterName As String, i As Long
    strCurrentPrinterName = Application.ActivePrinter
    i = 0
    Do While i < 100
        strTempPrinterName = strNetworkPrinterName & " on Ne" & Format(i, "00") & ":"
        On Error Resume Next
        Application.ActivePrinter = strTempPrinterName
        On Error GoTo 0
        If Application.ActivePrinter = strTempPrinterName Then
            ' nettverksskriveren ble funnet
            GetFullNetworkPrinterName = strTempPrinterName
            i = 100 ' avslutter loop-en
        End If
        i = i + 1
    Loop
    ' fjern linjen nedenfor dersom du også vil at funksjonen skal endre den aktive skriveren
    Application.ActivePrinter = strCurrentPrinterName ' bytt tilbake til den originale skriveren
End Function

 

Dokumentet er sist oppdatert 2005-06-03 13:38:25      Utskriftsvennlig versjon

 

Erlandsen Data Consulting     http://www.erlandsendata.no/   
Excel & VBA Tips   Copyright ©1999-2017    Ole P. Erlandsen   All rights reserved
E-post kontaktadresse