Домашняя страница Undo Do Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Макрос для WORD 2007 реализующий задержку 5 сек - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: _Boroda_, китин  
Макрос для WORD 2007 реализующий задержку 5 сек
john22255 Дата: Четверг, 10.12.2015, 15:39 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Доброго дня!
Подскажите пожалуйста, что дописать в макрос для word 2007, чтобы была задержка в несколько секунд для переворачивания листа бумаги в принтере?
Вот макрос:

[vba]
Код
Sub Print_Kom_Udost()
'
' Print_Kom_Udost Макрос
'

    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="1", PageType:=wdPrintAllPages, _
         ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
        False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="2", PageType:=wdPrintAllPages, _
         ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
        False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
End Sub
[/vba]

Соответственно первая часть печатает страницу 1, а вторая часть макроса печатает страницу 2.
А вот как сделать задержку между печатью страниц секунд в 5-10 ?
Экселевские конструкции не работают - выдают ошибку.
Буду очень признателен уважаемым форумчанам за подсказку.
Спасибо.
 
Ответить
СообщениеДоброго дня!
Подскажите пожалуйста, что дописать в макрос для word 2007, чтобы была задержка в несколько секунд для переворачивания листа бумаги в принтере?
Вот макрос:

[vba]
Код
Sub Print_Kom_Udost()
'
' Print_Kom_Udost Макрос
'

    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="1", PageType:=wdPrintAllPages, _
         ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
        False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="2", PageType:=wdPrintAllPages, _
         ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
        False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
End Sub
[/vba]

Соответственно первая часть печатает страницу 1, а вторая часть макроса печатает страницу 2.
А вот как сделать задержку между печатью страниц секунд в 5-10 ?
Экселевские конструкции не работают - выдают ошибку.
Буду очень признателен уважаемым форумчанам за подсказку.
Спасибо.

Автор - john22255
Дата добавления - 10.12.2015 в 15:39
Gustav Дата: Четверг, 10.12.2015, 19:16 | Сообщение № 2
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
А зачем задержка? Просто давайте принтеру по одному листу и ждите спокойно, когда он лицевую страницу отпечатает. Потом переверните лист. Макрос может уже давно отработать, но данные-то будут в памяти принтера, оттуда он их и напечатает.

Если же я неправ, то расскажите подробнее, как у Вас физически организован этот процесс с переворачиванием страницы.

P.S. Но если уж пренепременно хотите по-своему, то задержку можно организовать примерно так:
[vba]
Код
CreateObject("Excel.Application").Wait Now + TimeValue("0:00:10") 'задержка 10 секунд
[/vba]
Вставьте эту строку между операторами печати страниц 1 и 2. Может, это то, что Вы ищете. В Word, увы, не нашёл оператора Application.Wait, поэтому пришлось позаимствовать из Excel.


МОИ: Ник, Tip box: 41001663842605

Сообщение отредактировал Gustav - Четверг, 10.12.2015, 19:44
 
Ответить
СообщениеА зачем задержка? Просто давайте принтеру по одному листу и ждите спокойно, когда он лицевую страницу отпечатает. Потом переверните лист. Макрос может уже давно отработать, но данные-то будут в памяти принтера, оттуда он их и напечатает.

Если же я неправ, то расскажите подробнее, как у Вас физически организован этот процесс с переворачиванием страницы.

P.S. Но если уж пренепременно хотите по-своему, то задержку можно организовать примерно так:
[vba]
Код
CreateObject("Excel.Application").Wait Now + TimeValue("0:00:10") 'задержка 10 секунд
[/vba]
Вставьте эту строку между операторами печати страниц 1 и 2. Может, это то, что Вы ищете. В Word, увы, не нашёл оператора Application.Wait, поэтому пришлось позаимствовать из Excel.

Автор - Gustav
Дата добавления - 10.12.2015 в 19:16
john22255 Дата: Пятница, 11.12.2015, 10:35 | Сообщение № 3
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Вставьте эту строку между операторами печати страниц 1 и 2.


Спасибо, что откликнулись!
Сделал так:
[vba]
Код
Sub Print_Kom_Udost()
'
' Print_Kom_Udost Макрос
'

    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="1", PageType:=wdPrintAllPages, _
         ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
        False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
CreateObject("Excel.Application").Wait Now + TimeValue("0:00:10") 'задержка 10 секунд
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="2", PageType:=wdPrintAllPages, _
         ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
        False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
End Sub
[/vba]

Но просходит следующее: при запуске макроса сначала происходит задержка ~10 сек, а потом печатаются первая и вторая страницы подряд.

По поводу давания принтеру по одному листу с переворачиванием:
дело в том что принтер расшарен, у него много пользователей и постоянно вставлена пачка бумаги. Поэтому не хотелось бы тягать туда-обратно пачку бумаги из принтера, а хочется запуская на печать документ со своего компьютера, подходить к принтеру для переворачивания листа за время, которое даст мне макрос.


Сообщение отредактировал john22255 - Пятница, 11.12.2015, 10:37
 
Ответить
Сообщение
Вставьте эту строку между операторами печати страниц 1 и 2.


Спасибо, что откликнулись!
Сделал так:
[vba]
Код
Sub Print_Kom_Udost()
'
' Print_Kom_Udost Макрос
'

    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="1", PageType:=wdPrintAllPages, _
         ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
        False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
CreateObject("Excel.Application").Wait Now + TimeValue("0:00:10") 'задержка 10 секунд
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="2", PageType:=wdPrintAllPages, _
         ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
        False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
End Sub
[/vba]

Но просходит следующее: при запуске макроса сначала происходит задержка ~10 сек, а потом печатаются первая и вторая страницы подряд.

По поводу давания принтеру по одному листу с переворачиванием:
дело в том что принтер расшарен, у него много пользователей и постоянно вставлена пачка бумаги. Поэтому не хотелось бы тягать туда-обратно пачку бумаги из принтера, а хочется запуская на печать документ со своего компьютера, подходить к принтеру для переворачивания листа за время, которое даст мне макрос.

Автор - john22255
Дата добавления - 11.12.2015 в 10:35
Gustav Дата: Пятница, 11.12.2015, 11:36 | Сообщение № 4
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Попробуйте заменить параметр Background:=True на Background:=False. Сначала только для первой страницы.


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеПопробуйте заменить параметр Background:=True на Background:=False. Сначала только для первой страницы.

Автор - Gustav
Дата добавления - 11.12.2015 в 11:36
igrtsk Дата: Пятница, 11.12.2015, 12:18 | Сообщение № 5
Группа: Проверенные
Ранг: Обитатель
Сообщений: 314
Репутация: 50 ±
Замечаний: 0% ±

Excel 2016
По поводу давания принтеру по одному листу с переворачиванием:
дело в том что принтер расшарен, у него много пользователей и постоянно вставлена пачка бумаги. Поэтому не хотелось бы тягать туда-обратно пачку бумаги из принтера, а хочется запуская на печать документ со своего компьютера, подходить к принтеру для переворачивания листа за время, которое даст мне макрос.

А что у Вас за модель принтера? Обычно в "солидных"принтерах есть отдельный лоток для подачи бумаги вручную. Принтер автоматически определяет есть там бумага или нет, чтобы не брать лист из общего лотка.


Инструктор по применению лосей в кавалерийских частях РККА
 
Ответить
Сообщение
По поводу давания принтеру по одному листу с переворачиванием:
дело в том что принтер расшарен, у него много пользователей и постоянно вставлена пачка бумаги. Поэтому не хотелось бы тягать туда-обратно пачку бумаги из принтера, а хочется запуская на печать документ со своего компьютера, подходить к принтеру для переворачивания листа за время, которое даст мне макрос.

А что у Вас за модель принтера? Обычно в "солидных"принтерах есть отдельный лоток для подачи бумаги вручную. Принтер автоматически определяет есть там бумага или нет, чтобы не брать лист из общего лотка.

Автор - igrtsk
Дата добавления - 11.12.2015 в 12:18
john22255 Дата: Пятница, 11.12.2015, 12:53 | Сообщение № 6
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
А что у Вас за модель принтера?

HP P1102
 
Ответить
Сообщение
А что у Вас за модель принтера?

HP P1102

Автор - john22255
Дата добавления - 11.12.2015 в 12:53
john22255 Дата: Пятница, 11.12.2015, 12:57 | Сообщение № 7
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Попробуйте заменить параметр Background:=True на Background:=False


То что нужно!
Большое спасибо за помощь
 
Ответить
Сообщение
Попробуйте заменить параметр Background:=True на Background:=False


То что нужно!
Большое спасибо за помощь

Автор - john22255
Дата добавления - 11.12.2015 в 12:57
john22255 Дата: Пятница, 11.12.2015, 13:13 | Сообщение № 8
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Еще один последний вопрос!
Вот я сделал кнопку - по вышеупомянутому макросу. Все прекрасно - все работает, как надо. Но вот кнопка выводится на печать и видна на бумаге. Как сделать так, чтобы сама кнопка на печать не выводилась? В Excel есть прямо чекбоксик такой в свойствах кнопки. А в Word я чтото не вижу..
Подскажите пожалуйста как не выводить кнопку на печать.
Спасибо
 
Ответить
СообщениеЕще один последний вопрос!
Вот я сделал кнопку - по вышеупомянутому макросу. Все прекрасно - все работает, как надо. Но вот кнопка выводится на печать и видна на бумаге. Как сделать так, чтобы сама кнопка на печать не выводилась? В Excel есть прямо чекбоксик такой в свойствах кнопки. А в Word я чтото не вижу..
Подскажите пожалуйста как не выводить кнопку на печать.
Спасибо

Автор - john22255
Дата добавления - 11.12.2015 в 13:13
Gustav Дата: Пятница, 11.12.2015, 16:02 | Сообщение № 9
Группа: Админы
Ранг: Участник клуба
Сообщений: 2797
Репутация: 1161 ±
Замечаний: ±

начинал с Excel 4.0, видел 2.1
Удобного свойства 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
       
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="1", PageType:=wdPrintAllPages, _
        ManualDuplexPrint:=False, Collate:=True, Background:=False, PrintToFile:= _
        False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
        
    CreateObject("Excel.Application").Wait Now + TimeValue("0:00:20") 'задержка 20 секунд

    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="2", PageType:=wdPrintAllPages, _
        ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
        False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
        
    'восстанавливаем высоту и ширину кнопки
    Me.CommandButton21.Height = h
    Me.CommandButton21.Width = w
    
End Sub
[/vba]


МОИ: Ник, Tip box: 41001663842605
 
Ответить
СообщениеУдобного свойства 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
       
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="1", PageType:=wdPrintAllPages, _
        ManualDuplexPrint:=False, Collate:=True, Background:=False, PrintToFile:= _
        False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
        
    CreateObject("Excel.Application").Wait Now + TimeValue("0:00:20") 'задержка 20 секунд

    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="2", PageType:=wdPrintAllPages, _
        ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
        False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
        
    'восстанавливаем высоту и ширину кнопки
    Me.CommandButton21.Height = h
    Me.CommandButton21.Width = w
    
End Sub
[/vba]

Автор - Gustav
Дата добавления - 11.12.2015 в 16:02
john22255 Дата: Понедельник, 14.12.2015, 09:02 | Сообщение № 10
Группа: Пользователи
Ранг: Прохожий
Сообщений: 6
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Gustav, Большое спасибо за квалифицированную помощь. Все работает просто идеально.
 
Ответить
СообщениеGustav, Большое спасибо за квалифицированную помощь. Все работает просто идеально.

Автор - john22255
Дата добавления - 14.12.2015 в 09:02
krosav4ig Дата: Пятница, 18.12.2015, 14:56 | Сообщение № 11
Группа: Друзья
Ранг: Старожил
Сообщений: 2347
Репутация: 997 ±
Замечаний: 0% ±

Excel 2007,2010,2013
еще вариант, чтобы кнопка отображалась, нужно включить отображение скрытого текста (Параметры Word>Экран>Всегда показывать...>галка Скрытый текст)
[vba]
Код
Private Sub CommandButton1_Click()
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="1", PageType:=wdPrintAllPages, _
        ManualDuplexPrint:=False, Collate:=True, Background:=False, PrintToFile:= _
        False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
        
    Dim t#: t = Timer: Do: DoEvents: Loop While (Timer - t) < 10
    
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="2", PageType:=wdPrintAllPages, _
        ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
        False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
End Sub
[/vba]
К сообщению приложен файл: Doc3.docm (19.5 Kb)


email:krosav4ig26@gmail.com WMR R207627035142 WMZ Z821145374535 ЯД 410012026478460

Сообщение отредактировал krosav4ig - Пятница, 18.12.2015, 15:01
 
Ответить
Сообщениееще вариант, чтобы кнопка отображалась, нужно включить отображение скрытого текста (Параметры Word>Экран>Всегда показывать...>галка Скрытый текст)
[vba]
Код
Private Sub CommandButton1_Click()
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="1", PageType:=wdPrintAllPages, _
        ManualDuplexPrint:=False, Collate:=True, Background:=False, PrintToFile:= _
        False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
        
    Dim t#: t = Timer: Do: DoEvents: Loop While (Timer - t) < 10
    
    Application.PrintOut FileName:="", Range:=wdPrintRangeOfPages, Item:= _
        wdPrintDocumentContent, Copies:=1, Pages:="2", PageType:=wdPrintAllPages, _
        ManualDuplexPrint:=False, Collate:=True, Background:=True, PrintToFile:= _
        False, PrintZoomColumn:=0, PrintZoomRow:=0, PrintZoomPaperWidth:=0, _
        PrintZoomPaperHeight:=0
End Sub
[/vba]

Автор - krosav4ig
Дата добавления - 18.12.2015 в 14:56
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!