Na verdade é isso que acontece comigo. Queria que o programa capturasse a impressora padrão atual (isso eu consigo), depois, no meu programa, eu pudesse selecionar a impressora que eu quiser, e, finalmente, quando saísse do programa voltasse a impressora que estava.
'-------------------------------------------------------------
Dim xPrinter As Printer
For Each xPrinter In Printers
If xPrinter.DeviceName = Printer.DeviceName Then 'É a Impressora Padrão
Exit For
'Else 'Outras Impressoras Instaladas
End If
Next xPrinter
CommonDialog1.ShowPrinter
' aqui eu imprimo
' Depois volto a impressora que estava
Set Printer = xPrinter ' este código não funciona
'-------------------------------------------------------------
Como disse o Roberto, parece que o Set Printer não altera a impressora padrão do Windows.
Roberto, você sobre que existe uma API que faz isso. Você teria um exemplo?
Mais uma vez obrigado.