Доброго дня! Подскажите пожалуйста, что дописать в макрос для word 2007, чтобы была задержка в несколько секунд для переворачивания листа бумаги в принтере? Вот макрос:
[vba]
Код
Sub Print_Kom_Udost() ' ' Print_Kom_Udost Макрос '
Соответственно первая часть печатает страницу 1, а вторая часть макроса печатает страницу 2. А вот как сделать задержку между печатью страниц секунд в 5-10 ? Экселевские конструкции не работают - выдают ошибку. Буду очень признателен уважаемым форумчанам за подсказку. Спасибо.
Доброго дня! Подскажите пожалуйста, что дописать в макрос для word 2007, чтобы была задержка в несколько секунд для переворачивания листа бумаги в принтере? Вот макрос:
[vba]
Код
Sub Print_Kom_Udost() ' ' Print_Kom_Udost Макрос '
Соответственно первая часть печатает страницу 1, а вторая часть макроса печатает страницу 2. А вот как сделать задержку между печатью страниц секунд в 5-10 ? Экселевские конструкции не работают - выдают ошибку. Буду очень признателен уважаемым форумчанам за подсказку. Спасибо.john22255
А зачем задержка? Просто давайте принтеру по одному листу и ждите спокойно, когда он лицевую страницу отпечатает. Потом переверните лист. Макрос может уже давно отработать, но данные-то будут в памяти принтера, оттуда он их и напечатает.
Если же я неправ, то расскажите подробнее, как у Вас физически организован этот процесс с переворачиванием страницы.
P.S. Но если уж пренепременно хотите по-своему, то задержку можно организовать примерно так: [vba]
Код
CreateObject("Excel.Application").Wait Now + TimeValue("0:00:10") 'задержка 10 секунд
[/vba] Вставьте эту строку между операторами печати страниц 1 и 2. Может, это то, что Вы ищете. В Word, увы, не нашёл оператора Application.Wait, поэтому пришлось позаимствовать из Excel.
А зачем задержка? Просто давайте принтеру по одному листу и ждите спокойно, когда он лицевую страницу отпечатает. Потом переверните лист. Макрос может уже давно отработать, но данные-то будут в памяти принтера, оттуда он их и напечатает.
Если же я неправ, то расскажите подробнее, как у Вас физически организован этот процесс с переворачиванием страницы.
P.S. Но если уж пренепременно хотите по-своему, то задержку можно организовать примерно так: [vba]
Код
CreateObject("Excel.Application").Wait Now + TimeValue("0:00:10") 'задержка 10 секунд
[/vba] Вставьте эту строку между операторами печати страниц 1 и 2. Может, это то, что Вы ищете. В Word, увы, не нашёл оператора Application.Wait, поэтому пришлось позаимствовать из Excel.Gustav
Но просходит следующее: при запуске макроса сначала происходит задержка ~10 сек, а потом печатаются первая и вторая страницы подряд.
По поводу давания принтеру по одному листу с переворачиванием: дело в том что принтер расшарен, у него много пользователей и постоянно вставлена пачка бумаги. Поэтому не хотелось бы тягать туда-обратно пачку бумаги из принтера, а хочется запуская на печать документ со своего компьютера, подходить к принтеру для переворачивания листа за время, которое даст мне макрос.
Но просходит следующее: при запуске макроса сначала происходит задержка ~10 сек, а потом печатаются первая и вторая страницы подряд.
По поводу давания принтеру по одному листу с переворачиванием: дело в том что принтер расшарен, у него много пользователей и постоянно вставлена пачка бумаги. Поэтому не хотелось бы тягать туда-обратно пачку бумаги из принтера, а хочется запуская на печать документ со своего компьютера, подходить к принтеру для переворачивания листа за время, которое даст мне макрос.john22255
Сообщение отредактировал john22255 - Пятница, 11.12.2015, 10:37
По поводу давания принтеру по одному листу с переворачиванием: дело в том что принтер расшарен, у него много пользователей и постоянно вставлена пачка бумаги. Поэтому не хотелось бы тягать туда-обратно пачку бумаги из принтера, а хочется запуская на печать документ со своего компьютера, подходить к принтеру для переворачивания листа за время, которое даст мне макрос.
А что у Вас за модель принтера? Обычно в "солидных"принтерах есть отдельный лоток для подачи бумаги вручную. Принтер автоматически определяет есть там бумага или нет, чтобы не брать лист из общего лотка.
По поводу давания принтеру по одному листу с переворачиванием: дело в том что принтер расшарен, у него много пользователей и постоянно вставлена пачка бумаги. Поэтому не хотелось бы тягать туда-обратно пачку бумаги из принтера, а хочется запуская на печать документ со своего компьютера, подходить к принтеру для переворачивания листа за время, которое даст мне макрос.
А что у Вас за модель принтера? Обычно в "солидных"принтерах есть отдельный лоток для подачи бумаги вручную. Принтер автоматически определяет есть там бумага или нет, чтобы не брать лист из общего лотка.igrtsk
Инструктор по применению лосей в кавалерийских частях РККА
Еще один последний вопрос! Вот я сделал кнопку - по вышеупомянутому макросу. Все прекрасно - все работает, как надо. Но вот кнопка выводится на печать и видна на бумаге. Как сделать так, чтобы сама кнопка на печать не выводилась? В Excel есть прямо чекбоксик такой в свойствах кнопки. А в Word я чтото не вижу.. Подскажите пожалуйста как не выводить кнопку на печать. Спасибо
Еще один последний вопрос! Вот я сделал кнопку - по вышеупомянутому макросу. Все прекрасно - все работает, как надо. Но вот кнопка выводится на печать и видна на бумаге. Как сделать так, чтобы сама кнопка на печать не выводилась? В Excel есть прямо чекбоксик такой в свойствах кнопки. А в Word я чтото не вижу.. Подскажите пожалуйста как не выводить кнопку на печать. Спасибоjohn22255
Удобного свойства Visible у кнопки в Word действительно не видно. Но можно по отдельности уменьшить до предела (и по окончании восстановить) ширину и высоту кнопки. К сожалению, значение 0 не подходит, поэтому минимум это 1. Я попробовал - кнопка реально визуально "исчезает" и на распечатке не видна, что и требуется на практике. Маленькое неудобство - придется отвечать на вопрос о сохранении документа при закрытии. [vba]
Код
Private Sub CommandButton21_Click() ' Print_Kom_Udost Макрос ' Dim w, h
'запоминаем высоту и ширину кнопки (вместо 21 подставить свою кнопку!) h = Me.CommandButton21.Height w = Me.CommandButton21.Width
'стягиваем кнопку в минимальную точку (=0 к сожалению нельзя) Me.CommandButton21.Height = 1 Me.CommandButton21.Width = 1
'восстанавливаем высоту и ширину кнопки Me.CommandButton21.Height = h Me.CommandButton21.Width = w
End Sub
[/vba]
Удобного свойства Visible у кнопки в Word действительно не видно. Но можно по отдельности уменьшить до предела (и по окончании восстановить) ширину и высоту кнопки. К сожалению, значение 0 не подходит, поэтому минимум это 1. Я попробовал - кнопка реально визуально "исчезает" и на распечатке не видна, что и требуется на практике. Маленькое неудобство - придется отвечать на вопрос о сохранении документа при закрытии. [vba]
Код
Private Sub CommandButton21_Click() ' Print_Kom_Udost Макрос ' Dim w, h
'запоминаем высоту и ширину кнопки (вместо 21 подставить свою кнопку!) h = Me.CommandButton21.Height w = Me.CommandButton21.Width
'стягиваем кнопку в минимальную точку (=0 к сожалению нельзя) Me.CommandButton21.Height = 1 Me.CommandButton21.Width = 1
еще вариант, чтобы кнопка отображалась, нужно включить отображение скрытого текста (Параметры Word>Экран>Всегда показывать...>галка Скрытый текст) [vba]
еще вариант, чтобы кнопка отображалась, нужно включить отображение скрытого текста (Параметры Word>Экран>Всегда показывать...>галка Скрытый текст) [vba]