Get Names of Available Printers Example (VBA)

This example shows how to get the names of the printers available to your computer to which you can print.

'--------------------------------------------------------------
' Preconditions:
' 1. Create a VBA macro in a software product in which VBA is
'    embedded.
' 2. Copy and paste this example into the Visual Basic IDE.
' 3. Add a reference to the DraftSight type library,
'    install_dir\bin\dsAutomation.dll.
' 4. Start DraftSight.
' 5. Open the Immediate window.
' 6. Run the macro.
'
' Postcondition: The names of the available printers are written
' to the Immediate window.
'----------------------------------------------------------------
Sub main()
    Dim dsApp As DraftSight.Application
    'Connect to DraftSight
    Set dsApp = GetObject(, "DraftSight.Application")   
    'Abort any command currently running in DraftSight 
    'to avoid nested commands
    dsApp.AbortRunningCommand      
    'Get list of available printers
    Dim dsPrintMgr As DraftSight.PrintManager
    Set dsPrintMgr = dsApp.GetPrintManager
    Dim printArray() As String
    Dim i As Long
    printArray = dsPrintMgr.GetAvailablePrinters        
   'Print names of available printers
    If Not IsEmpty(printArray) Then
       	Debug.Print ("Available printers:")
       	For i = LBound(printArray) To UBound(printArray)
		Debug.Print ("  " & printArray(i))
       	Next i
    End If
End Sub