如今市场上的许多打印机都具有一些惊人的功能。通过显示打印机的“属性”对话框可以访问其中的大多数功能。在开发自己的宏时,您可能想知道是否可以从宏中访问这些功能。

不幸的是,似乎无法做到这一点,因为打印机驱动程序通常不会以可以从VBA使用的对象模型中理解和访问的方式来提供打印机功能。 (男孩,这是一个令人讨厌的消息!)相反,您必须使用实际的Windows API,即使那样,也可能无法访问所有功能。

但是,可以使用一些解决方法。您可以使用VBA选择可以将输出定向到的其他打印机。这意味着您可以在Windows中创建不同的打印机定义,然后将这些定义用作输出目标。

例如,您可以使用Windows中的“打印机”文件夹来设置名为HP Regular Paper的打印机。默认情况下,可以将打印机定义设置为在普通纸上打印。然后,您可以设置另一个名为HP Glossy Paper的打印机定义,并将其默认设置为打印到可能包含光面纸的纸盘中。在定义了两个打印机之后,您就可以使用VBA在两个打印机之间切换。例如,如果要打印到光面纸的打印机定义,则可以在宏中使用以下内容:

Application.ActivePrinter = "HP Glossy Paper"

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(9178)适用于Microsoft Excel 2007、2010、2013、2016、2019和Office 365中的Excel。您可以在此处为Excel的较早菜单界面找到此技巧的版本: