Изменение свойств принтера в макросе excel

Можно ли изменить свойства принтера на цвет, а не на черный и белый, в макросе 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.

Ответ 1

Вместо использования:

Workbooks("Book1.xlsm").Worksheets("Sheet3").PrintOut from:=1, To:=(i / 2) - 0.5

Вы можете просто использовать:

Workbooks("Book1.xlsm").Worksheets("Sheet3").PrintOut

и вы можете пропустить:

Workbooks("Book1.xlsm").Worksheets("DoNotDelete").PageSetup.BlackAndWhite = False

Поскольку это изменяет только настройки рабочего листа, а не настройки печати. ​​

Но, что касается печати в цвете, вам, вероятно, лучше всего просто создать ярлык того же принтера дважды в control panel и установить цвет по умолчанию, а другой - по умолчанию черно-белый. Таким образом вы можете указать цвет или черный/белый, только с помощью выбранного принтера.