|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
跪求精通API函数的大神帮助:vba打印输出为PDF文档的问题
本人因工作原因,某些地方还在用Excel2003,用VBA无法“直接”将工作表输出为PDF文件(本人知道高版本的可以,但特殊原因必须用2003版,也找不到相关插件与代码),但Excel2003可以用“间接”方法输出PDF文档:安装PDF虚拟打印机的方法打印输出为PDF文档。以下为“间接”方法输出PDF文档代码:
'获取打印机
Dim WshNetwork As Object
Dim oPrinter As Object
Set WshNetwork = CreateObject("WScript.Network")
With WshNetwork
Set oPrinter = .EnumPrinterConnections
For i = 0 To oPrinter.Count - 1 Step 2
If InStr(1, oPrinter(i + 1), "PDF") > 0 Then p = oPrinter(i + 1): Exit For
Next i
End With
If InStr(1, p, "PDF") = 0 Then MsgBox "未安装 PDF 虚拟打印机!": Exit Sub
If MsgBox("是否将当前工作表另存为PDF文件?", vbYesNo) = vbNo Then Exit Sub
k = Application.ActivePrinter '默认打印机名称写入内存
ActiveSheet.PrintOut Copies:=1, Collate:=True, ActivePrinter:=p
Application.ActivePrinter = k '恢复默认打印机
但采用上面的PDF虚拟打印机输出PDF文档时,“另存PDF文件为”对话框上面的“文件保存路径”、“文件名称”不能用VBA代码自行指定,需手工处理,现请求精通API函数的大神帮助,能否用API函数获取“另存PDF文件为”对话框窗口及窗口上的“控件”的句柄,来修改指定对话框窗口上的“默认保存路径”与“文件名称”?(可以有偿提供代码)
|
|