【发布时间】:2014-07-30 01:28:00
【问题描述】:
有什么方法可以在 Excel 宏/Excel VBA 中将打印机属性更改为彩色而不是黑白?我想从宏中打印彩色,但每次我退出 excel 时,它都会将颜色设置为黑白。我希望宏在每次运行时将颜色设置回颜色。这是我用来打印的代码:
Workbooks("Book1.xlsm").Worksheets("Sheet3").PrintOut from:=1, To:=(i / 2) - 0.5
这会打印受宏影响的每一页,但它会以黑白方式打印。我已经尝试过了,但它没有改变任何东西:
Workbooks("Book1.xlsm").Worksheets("Sheet3").PageSetup.BlackAndWhite = False
如果在 vba 中无法做到这一点,我也可以使用 API 解决方案。
【问题讨论】:
-
录制一个宏,看看它做了什么。这应该很容易。不确定您的语句语法 Workbooks("Book1.xlsm").Worksheets("DoNotDelete").PageSetup.BlackAndWhite = False
-
我很惊讶。看这个。似乎很有用。 mrexcel.com/forum/excel-questions/…
-
据我所知,绕过系统驱动程序的默认设置或多或少有些棘手。要更改打印机的默认设置,您需要做的是使用 Microsoft/打印机供应商 API 来获得控制驱动程序参数的功能。我可能完全错了,但对我来说,编写这个功能似乎是一个漫长的夜晚,没有睡觉,如果一个人要使用其他带有不同供应商驱动程序的打印机,它会再次失败。 A good article about this
-
您可以使用 WMI 来判断打印机是否配置为黑白或彩色 - 但虽然非常接近,但不能更改它。 technet.microsoft.com/en-us/windows/aa394364%28v=vs.71%29.aspx
-
@mehow 仍然没有这样做,因为打印设置仍然是黑白而不是彩色,但我需要它们是彩色的,我不想每次在我运行之前手动执行此操作宏。