打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
VBA: 获取电脑当前默认打印机的名称

        文章背景:通过Printout函数,可以将Excel文件转换为pdf文件,但与此同时,该函数可能会通过ActivePrinter参数将默认打印机修改为Microsoft Print to PDF。借助Application.ActivePrinter属性,一方面可以查询当前默认打印机的名称,另一方面,也可以指定默认打印机的名称。

(1)  Application.ActivePrinter

Returns or sets the name of the active printer. Read/write String.

(2)  代码示例

Option Explicit

Sub getPrinterName()

   Dim Printer_original As String
   
   Dim Path As String, path_saved As String, name_file As String
   
   '1 记录最开始的默认打印机
   Printer_original = Application.ActivePrinter
   
   '2 将一份excel文件转化为pdf文件
   Path = 'E:\工作\报告展示\1.xlsx'
   path_saved = 'E:\工作\报告展示\1.pdf'
   name_file = '1.xlsx'
   
   Workbooks.Open (Path)
       
   ActiveWorkbook.Worksheets(1).PrintOut copies:=1, preview:=False, ActivePrinter:='Microsoft Print to PDF' _
      , PrintToFile:=True, PrToFileName:=path_saved, IgnorePrintAreas:=False
       
   Workbooks(name_file).Close False
   
   '3 恢复默认的打印机
   Application.ActivePrinter = Printer_original
   
End Sub

该代码主要分为三步:(1)先记录当前默认打印机的名称,一般电脑默认连接的是实体打印机;(2)借助Printout函数将指定的Excel文件转换为PDF文件,此时默认打印机的名称已经发生变化,转变成了Microsoft Print to PDF; (3)恢复默认的打印机,也就是第(1)步保存的打印机名称。

参考资料:

[1] Application.ActivePrinter property(https://docs.microsoft.com/en-us/office/vba/api/excel.application.activeprinter

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
NO.10 VBA自定义函数
在VBA中从Base64字符串生成PDF
VBA入门笔记
VB.Net VBA 访问 Acrobat,浏览所有 annotation. 代码执行通过.
c# 文件类型转换汇总(word/excel/ppt/txt/pdf 转HTML&word/ppt 转swf)
.NET开发中的一些小技巧 - 团团的园子 - 博客园
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服