Многие принтеры, доступные в наши дни на рынке, обладают удивительными возможностями. Большинство из этих возможностей доступны в диалоговом окне «Печать» и нажатии кнопки «Свойства» рядом с именем принтера. Разрабатывая свои собственные макросы, вы можете задаться вопросом, можно ли получить доступ к этим возможностям из макроса.

К сожалению, это невозможно сделать, потому что драйверы принтеров обычно не делают функции принтеров доступными таким образом, чтобы их можно было понять и получить доступ из объектной модели, используемой VBA. (Боже, это было глупо!) Вместо этого вам придется использовать реальный Windows API, и даже тогда не все функции могут быть доступны.

Однако есть некоторые обходные пути, которые можно использовать. Вы можете использовать VBA для выбора различных принтеров, на которые вы можете направить свой вывод. Это означает, что вы можете создавать различные определения принтеров — в Windows — а затем использовать эти определения в качестве целевых для вывода.

Например, вы можете использовать папку «Принтеры» в Windows для настройки принтера с именем HP Regular Paper. Это определение принтера по умолчанию может быть настроено на печать на обычной бумаге. Затем вы можете настроить другое определение принтера с именем HP Glossy Paper и настроить его для печати по умолчанию на лоток, который может содержать глянцевую бумагу. После определения двух принтеров вы можете использовать VBA для переключения между ними. Например, если вы хотите печатать на определение принтера для глянцевой бумаги, вы можете использовать в макросе следующее:

Application.ActivePrinter = "HP Glossy Paper"

_Примечание: _

Если вы хотите узнать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах ExcelTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / excelribbon-ExcelTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

ExcelTips — ваш источник экономичного обучения Microsoft Excel.

Этот совет (2530) применим к Microsoft Excel 97, 2000, 2002 и 2003. Вы можете найти версию этого совета для ленточного интерфейса Excel (Excel 2007 и новее) здесь:

link: / excelribbon-Controlling_the_Printer_in_a_Macro [Управление принтером с помощью макроса].