【发布时间】:2017-06-07 06:45:50
【问题描述】:
有什么方法可以使用 VBA 更改系统默认打印机?以及更改其设置?还是向VBA问太多了T-T
【问题讨论】:
-
是的,你可以。你知道打印机名称吗?你试过任何代码吗?
-
非常感谢。我想我已经找到了方法:D
有什么方法可以使用 VBA 更改系统默认打印机?以及更改其设置?还是向VBA问太多了T-T
【问题讨论】:
是的,这是可能的。你需要从你的 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"
【讨论】:
............" & PrinterNameVariable & "............
Shell "RUNDLL32 PRINTUI.DLL,PrintUIEntry /y /n """ & Printer & """... 注意双引号。