Default Printer

A

aftamath77

Is there code that will reference a systems default printer. As of now, i
have code that will print out forms on excel spreadsheets. The problem is,
if a user prints the form to file, a .pdf is created using Adobe. If a user
now wants to print hard copies to the local printer, Excel is still printing
to .pdf. I'm looking for code that will return Excel to printing using hte
systems default printer. I could do this uses the name of the printer on the
computer, but the program will be used in different office areas with
different default printers. So the name of my default printer won't be the
same as another's. Is there a way that Visual Basic can call to a systems's
default printer?

Can anyone help?
Thanks in advance.
 
J

Jim Thomlinson

The default printer is controlled by the operating system. To get the printer
you need to use an API call something like this...

Private Declare Function GetDefaultPrinter Lib "winspool.drv" Alias
"GetDefaultPrinterA" (ByVal sPrinterName As String, lPrinterNameBufferSize As
Long) As Long

Sub DefaultPrinter()
Dim strDefaultPrinter As String
Dim lngResult As Long
Dim lngLength As Long

strDefaultPrinter = Space(255)
lngLength = 255
lngResult = GetDefaultPrinter(strDefaultPrinter, lngLength)
If lngResult <> 0 Then
strDefaultPrinter = Left(strDefaultPrinter, lngLength - 1)
MsgBox strDefaultPrinter
End If

End Sub
 
A

aftamath77

Where would I place this code to make sure that it's working? Currently, I'm
trying to get the code to see if CheckBox1 = False. If so, then I want the
program to print to the system's default printer.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top