Страницы: 1
RSS
VBA объект Printer
 
Здравствуйте.
Нужно в коде VBA менять настройки принтера, но объект Printer недоступен.
Не получается даже объявить переменную Dim  Pr  As Printer - выдает ошибку.
Подскажите, кто знает, в чем проблема. Спасибо.  
 
Цитата
написал:
Подскажите, кто знает, в чем проблема
проблема в том, что в VBA Excel нет вообще объекта Printer. И получать свойства принтера не так-то просто. Можно лишь настроить параметры печати конкретной книги - запись макроса с этим справляется без проблем.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
запись макроса не видит команду "переворачивать стр. относительно длиного/короткого края" , т.е. положение переплета.
насколько я понимаю эта настройка  относится к принтеру, а не Exel,в  PageSetup тоже нет такой настройки.
Дело в том что в книге много листов и у них разное положение переплета. При смене принтера в windows, Exel загружает в книгу настройки принтера и положение переплета оказывается у всех листов одинаковыми. При распечатке приходится исправлять все вручную. Как можно решить эту проблему??
Изменено: Sh.M. - 17.05.2022 19:42:35
 
Вариант: сначала распечатать группу листов с одним переплётом, затем группу с другим.
 
листы распечатываются выборочно - заполнятся бланки  через пользовательскую форму и при каждой распечатке следить за  настройкой принтера выглядит не очень..., тем более распечатывает неискушенный пользователь, а принтеры частенько меняет сисадмин.
 
 
Цитата
написал:
листы распечатываются выборочно - заполнятся бланки  через пользовательскую форму и при каждой распечатке
все это не важно...
и вот "следить при каждой распечатке" абсолютно не нужно, компьютер как раз для этого и предназначен, чтобы избавить пользователя от рутины и подтолкнуть его к творческому использованию собственного интеллекта, достаточно один раз подумать и написать макрос который будет за всем этим следить
если вы четко опишете задачу распечатать ваш файл сможет не то что неискушенный пользователь, а практически полный идиот способный нажать кнопку РАСЧЕЧАТАТЬ (возможно перед этим выбрав, что ему нужно распечатать, если эти действия не превосходят уровень его умственных способностей)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Цитата
написал:
достаточно один раз подумать и написать макрос
можно конкретнее какой командой  в макросе менять положение переплета
Изменено: Sh.M. - 17.05.2022 21:24:32
 
не совсем понимаю о чем речь, но ориентация листа устанавлвается так (сразу 2 команды на выбор):
Код
    ActiveSheet.PageSetup.Orientation = xlPortrait ' книжная
    ActiveSheet.PageSetup.Orientation = xlLandscape ' альбомная
Изменено: Ігор Гончаренко - 17.05.2022 22:29:56
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
нужна не ориентация, а положение переплета
 
Цитата
написал:
положение переплета
хотя бы скрин сделайте этой настройки. У меня вот в принтере из Excel нет такого пункта как "Положение переплета". В Word это штатная настройка, насколько знаю. И делает она только одно - добавляет доп.пространство для полей. Следовательно можно просто настроить макросом необходимый отступ для нужных полей в Excel и все. Главное опытным путем определить это самое расстояние полей. А назначение отступа полей записывается макросом уж точно.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
а как и где можно положение переплета настроить в Excel? (руками, без макросов)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
очевидно имеется ввиду вот эта настройка
 
nilske,
это где-то в свойствах листа Excel или в параметрах принтера?
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
настройка появляется в разделе Печать Exel,  когда в принтере включена двухсторонняя печать,

при альбомной ориентации, некоторые бланки должны распечатываться с переплетом слева, некоторые сверху (переворачивать стр. относительно длиного или короткого края).
может быть можно Exel запретить менять эту настройку при смене принтера в windows?
Изменено: Sh.M. - 18.05.2022 09:32:24
 
Цитата
написал:
можно Exel запретить менять эту настройку
нельзя запретить то, о чем Excel не знает :)
Да и в принципе, если меняете принтер - ясное дело, что и настройки собьются, т.к. не все принтеры одинаковые и функционал их может различаться. Поэтому здесь однозначный ответ - нет, нельзя.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата

Цитата
написал:

здесь однозначный ответ - нет, нельзя.
Спасибо, понятно
Страницы: 1
Наверх