Coloca isto no módulo:
Public Function SelPrinter() As Boolean
On Error Resume Next
If MsgBox("Deseja utilizar esta impressora (" & Printer.DeviceName & ")?", 36, "Avisos do Sistema") = 7 Then
Frm_Principal.ComDlg.CancelError = True
Frm_Principal.ComDlg.ShowPrinter
If Err.Number <> 0 Then
SelPrinter = False
Exit Function
Else
SelPrinter = True
Exit Function
End If
Else
SelPrinter = True
End If
End Function
'''e onde vc precisa chamar a impressora use este código:
If SelPrinter = False Then
Me.Refresh
Exit Sub
End If
''' Isto evita que o sistema chame a commondialog quando a impressora que vc quer usar é a padrão. NOrmalmente é um processo demorado a entrada da Common.