有什么方法可以使用VBA来更改系统默认打印机?除了更改其设置?或者从VBA T-T那里询问太多了
答案 0 :(得分:4)
是的,这是可能的。您需要从VBA代码中执行shell脚本:
Sub ChangePrinter()
Shell "RUNDLL32 PRINTUI.DLL,PrintUIEntry /y /n ""HP LaserJet 3000"""
End Sub
(将HP LaserJet 3000
更改为您的打印机名称。)
如果您的打印机位于网络位置(例如HP LaserJet 3000 on 192.168.1.100
),请使用以下语法:
Shell "RUNDLL32 PRINTUI.DLL,PrintUIEntry /y /n ""\\192.168.1.100\HP LaserJet 3000"""
此外,还可以更改打印机设置,但需要.dat
文件并进行必要的设置。
从打印机获取当前设置:
Shell "RUNDLL32 PRINTUI.DLL,PrintUIEntry /Ss /n ""HP LaserJet 3000"" /a ""C:\your_settings.dat"" u"
将设置文件提供给打印机的驱动程序:
Shell "RUNDLL32 PRINTUI.DLL,PrintUIEntry /Sr /n ""HP LaserJet 3000"" /a ""C:\your_settings.dat"" u"