VBA - Print Dialog popup after print PNG
Posted: Sat Apr 06, 2013 6:26 am
Dear All,
I have written a VBA to print 3 excel sheets to PNG.
However, the print dialog shown up after printing the third sheet.
What is the problem?
Public Sub PrintPNG2(FileName As String, SavePath As String, SheetName As String)
Dim oPrinterSettings As Object
Dim oPrinterUtil As Object
Dim sFolder As String
Dim sCurrentPrinter As String
Dim xmldom As Object
Dim sProgId As String
Dim sPrintername As String
Dim sFullPrinterName As String
Set oPrinterSettings = CreateObject("Bullzip.PdfSettings")
Set oPrinterUtil = CreateObject("Bullzip.PdfUtil")
sPrintername = oPrinterUtil.DefaultPrintername
oPrinterSettings.PrinterName = sPrintername
sFullPrinterName = FindPrinter(sPrintername)
sFullPrinterName = GetFullNetworkPrinterName(sFullPrinterName)
With oPrinterSettings
.SetValue "Device", "png16m"
.SetValue "Output", SavePath & FileName
.SetValue "ShowSettings", "never"
.SetValue "ShowPDF", "no"
.SetValue "ShowSaveAs", "never"
.SetValue "ShowProgressFinished", "no"
.SetValue "ConfirmOverwrite", "no"
.WriteSettings True
End With
sCurrentPrinter = ActivePrinter
ActivePrinter = sFullPrinterName
ActiveWorkbook.Sheets(SheetName).PrintOut
ActivePrinter = sCurrentPrinter
Set oPrinterUtil = Nothing
Set oPrinterSettings = Nothing
End Sub
Will this be a problem of object deallocation?
I have written a VBA to print 3 excel sheets to PNG.
However, the print dialog shown up after printing the third sheet.
What is the problem?
Public Sub PrintPNG2(FileName As String, SavePath As String, SheetName As String)
Dim oPrinterSettings As Object
Dim oPrinterUtil As Object
Dim sFolder As String
Dim sCurrentPrinter As String
Dim xmldom As Object
Dim sProgId As String
Dim sPrintername As String
Dim sFullPrinterName As String
Set oPrinterSettings = CreateObject("Bullzip.PdfSettings")
Set oPrinterUtil = CreateObject("Bullzip.PdfUtil")
sPrintername = oPrinterUtil.DefaultPrintername
oPrinterSettings.PrinterName = sPrintername
sFullPrinterName = FindPrinter(sPrintername)
sFullPrinterName = GetFullNetworkPrinterName(sFullPrinterName)
With oPrinterSettings
.SetValue "Device", "png16m"
.SetValue "Output", SavePath & FileName
.SetValue "ShowSettings", "never"
.SetValue "ShowPDF", "no"
.SetValue "ShowSaveAs", "never"
.SetValue "ShowProgressFinished", "no"
.SetValue "ConfirmOverwrite", "no"
.WriteSettings True
End With
sCurrentPrinter = ActivePrinter
ActivePrinter = sFullPrinterName
ActiveWorkbook.Sheets(SheetName).PrintOut
ActivePrinter = sCurrentPrinter
Set oPrinterUtil = Nothing
Set oPrinterSettings = Nothing
End Sub
Will this be a problem of object deallocation?