Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - VBA

Страница: 1 |

 

  Вопрос: Пауза в макросе Word Добавлено: 04.05.09 22:52  

Автор вопроса:  DrugON__
Опять же ничего не нашел подходящего :(

Впервые столкнулся с Вордом, поэтому не знаю как победить на первый взгляд простую задачу.
При отправке документа на печать необходима пауза несколько секунд (3-х достаточно) для ожидания диалогового окна. Если в Экселе помогало Application.Wait, то Ворд эту команду не понимает.
Каким еще образом можно сделать паузу?

Ответить

  Ответы Всего ответов: 10  

Номер ответа: 1
Автор ответа:
 Smith



ICQ: adamis@list.ru 

Вопросов: 153
Ответов: 3632
 Профиль | | #1 Добавлено: 05.05.09 00:57
Апи Sleep.

Ответить

Номер ответа: 2
Автор ответа:
 AngryBadger



Вопросов: 33
Ответов: 245
 Профиль | | #2 Добавлено: 05.05.09 09:32
Если не понял, то:

Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Sub Sleep_Pause()
Sleep 500 'значение в милисекундах(если я не ошибаюсь)
End Sub

Ответить

Номер ответа: 3
Автор ответа:
 DrugON__



Вопросов: 5
Ответов: 21
 Профиль | | #3 Добавлено: 05.05.09 10:06
Огромное спасибо. Как мне уже объяснили, тупая пауза - не лучшее решение. Пока воспользуюсь таким способом, а после буду пытаться ловить окно.

Ответить

Номер ответа: 4
Автор ответа:
 AngryBadger



Вопросов: 33
Ответов: 245
 Профиль | | #4 Добавлено: 05.05.09 10:53
Тебе пауза нужна на время работы vb_скрипта? Если так, то можешь в книжке Дж. Уокенбаха "Профессиональное програмирование на VBA" посмотреть про метод Shell, там как раз неплохое решение для этого есть.

Ответить

Номер ответа: 5
Автор ответа:
 DrugON__



Вопросов: 5
Ответов: 21
 Профиль | | #5 Добавлено: 05.05.09 12:42
Михаил a.k.a. AngryBadger, а нет ли у Вас этой книги в электронном варианте? Или ссылочки?
Сам сейчас тоже погуглю...

Ответить

Номер ответа: 6
Автор ответа:
 AngryBadger



Вопросов: 33
Ответов: 245
 Профиль | | #6 Добавлено: 05.05.09 12:59
mc-black недавно выкладывал где поискать:
Из учебников рекомендую скачать Уокенбах Дж. Профессиональное программирование в Excel, есть на http://www.infanata.org/ - зарегистрируйся и используй поиск!

Ответить

Номер ответа: 7
Автор ответа:
 DrugON__



Вопросов: 5
Ответов: 21
 Профиль | | #7 Добавлено: 05.05.09 15:11
Я уже скачал отсюда:
http://www.zipsites.ru/books/uokenbakh_prof_progre_na_vba_v_excel_2002/

Спасибо!

Ответить

Номер ответа: 8
Автор ответа:
 DrugON__



Вопросов: 5
Ответов: 21
 Профиль | | #8 Добавлено: 05.05.09 16:23
Как я понял, этот код усыпляет не приложение, а систему полностью?
Это не есть гуд для меня, мне нужно именно приостановить выполнение кода до того момента, пока не будет создан файл, с которым дальше нужно провести манипуляции (копирование его в разные места).

Попробовал таким вот примитивным макаром:

ActiveDocument.PrintOut ' виртуальный принтер, создающий PDF-файл из активного документа

Back:
If fso.FileExists("" & pdfPath & "\FM_Report.pdf";) = True Then

    fso.CopyFile "" & pdfPath & "\FM_Report.pdf", "" & fmrPath & "\FM_" & MyDate & ".pdf"
    fso.CopyFile "" & pdfPath & "\FM_Report.pdf", "" & netfmrPath & "\FM_" & MyDate & ".pdf"
    Kill ("" & pdfPath & "\*.*";)
Else
    GoTo Back
End If

Без этого код выполняется. не дожидаясь создания файла и выдает ошибку "Файл не найден". Думал таким тупым способом победить, чтобы цикл крутился до тех пор, пока файл не появится в директории. Но он крутится бесконечно и не дает принтеру закончить создание файла.

Как победить?
У меня только одна идея осталась - создание PDF-файла прописать в отдельном макросе и вызывать его отсюда, а уже потом копировать файл. Прокатит?

Ответить

Номер ответа: 9
Автор ответа:
 AngryBadger



Вопросов: 33
Ответов: 245
 Профиль | | #9 Добавлено: 05.05.09 16:50
Дай свой мэйл, я тебе попозже листинг из книжки в скане скину, потом запостишь что получилось

Ответить

Номер ответа: 10
Автор ответа:
 DrugON__



Вопросов: 5
Ответов: 21
 Профиль | | #10 Добавлено: 06.05.09 16:31
Михаил a.k.a. AngryBadger, DrugON@inbox.ru

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам