如何使用Excel VBA更改系统默认打印机?

Jia*_*ang 0 excel vba

有什么方法可以使用VBA更改系统默认打印机?以及更改其设置?还是VBA TT要求太多

Tao*_*que 5

是的,有可能。您需要从VBA代码执行Shell脚本:

Sub ChangePrinter()
    Shell "RUNDLL32 PRINTUI.DLL,PrintUIEntry /y /n ""HP LaserJet 3000"""
End Sub
Run Code Online (Sandbox Code Playgroud)

(更改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"""
Run Code Online (Sandbox Code Playgroud)

也可以更改打印机设置,但是您将需要一个.dat具有必要设置的文件。

要从打印机获取当前设置:

Shell "RUNDLL32 PRINTUI.DLL,PrintUIEntry /Ss /n ""HP LaserJet 3000"" /a ""C:\your_settings.dat"" u"
Run Code Online (Sandbox Code Playgroud)

要将设置文件提供给打印机的驱动程序:

Shell "RUNDLL32 PRINTUI.DLL,PrintUIEntry /Sr /n ""HP LaserJet 3000"" /a ""C:\your_settings.dat"" u"
Run Code Online (Sandbox Code Playgroud)