Уважаемые форумчане, добрый день! Помогите пожалуйста разобраться с таймером для Outlook. Сам код, который отрабатывает действия полсе запуска таймера работает. А вот как изначально запустить таймер не знаю. В Excel я вызывал функцию "Папка"(Application.OnTime TimeValue("17:08:00"), "Папка"), после открытия книги Excel и все работает. Но в outlook, я не нашел ничего похожего. Может в Outlook есть какая-либо встроенная функция для отработки программы после наступления определенного времени?
Уважаемые форумчане, добрый день! Помогите пожалуйста разобраться с таймером для Outlook. Сам код, который отрабатывает действия полсе запуска таймера работает. А вот как изначально запустить таймер не знаю. В Excel я вызывал функцию "Папка"(Application.OnTime TimeValue("17:08:00"), "Папка"), после открытия книги Excel и все работает. Но в outlook, я не нашел ничего похожего. Может в Outlook есть какая-либо встроенная функция для отработки программы после наступления определенного времени?A_3485
Вспомнился студенческий АНЕКДОТ: Сессия. Решили провести исследование, как студенты разных вузов готовятся к экзаменам. Подходт к студенту Пед. Института и спрашивают: - Сколько тебе нужно времени, чтобы выучить китайский язык и сдать по нему экзамен? - Ну... года три, наверное... Подходт к студенту Университета и спрашивают: - Сколько тебе нужно времени, чтобы выучить китайский язык и сдать по нему экзамен? - Ну... год... Но если постараться, могу и за семестр. Подходт к студенту Технического ВУЗа и спрашивают: - Сколько тебе нужно времени, чтобы выучить китайский язык и сдать по нему экзамен? - А методичка есть? - Есть. - Ну тогда сейчас докурю и пойдем сдавать!
МОРАЛЬ: Мы тут все немножко "студенты Технического ВУЗа". Берем "методичку" - строку "Outlook Application Reminder" и "идём сдавать" - в Google
Вспомнился студенческий АНЕКДОТ: Сессия. Решили провести исследование, как студенты разных вузов готовятся к экзаменам. Подходт к студенту Пед. Института и спрашивают: - Сколько тебе нужно времени, чтобы выучить китайский язык и сдать по нему экзамен? - Ну... года три, наверное... Подходт к студенту Университета и спрашивают: - Сколько тебе нужно времени, чтобы выучить китайский язык и сдать по нему экзамен? - Ну... год... Но если постараться, могу и за семестр. Подходт к студенту Технического ВУЗа и спрашивают: - Сколько тебе нужно времени, чтобы выучить китайский язык и сдать по нему экзамен? - А методичка есть? - Есть. - Ну тогда сейчас докурю и пойдем сдавать!
МОРАЛЬ: Мы тут все немножко "студенты Технического ВУЗа". Берем "методичку" - строку "Outlook Application Reminder" и "идём сдавать" - в Google Gustav
Что тут можно сказать - анекдот класнный ! Если учесть то, что я не программист, самостоятельно разобраться в свойствах "Outlook Application" и как это работает будет весьма проблематично. Поэтому я попросил помощи на форуме.
Что тут можно сказать - анекдот класнный ! Если учесть то, что я не программист, самостоятельно разобраться в свойствах "Outlook Application" и как это работает будет весьма проблематично. Поэтому я попросил помощи на форуме.A_3485
Рассказали бы про задачку несколько подробнее. Я хоть и программист, но под Outlook что-то делаю не каждый день, да что день - не каждый ГОД! Поэтому тоже всё исключительно "по методичке" (и если самому интересно).
Один из вариантов "запуска таймера" в Outlook, как я полагаю, назначение (создание), например, встречи. Время наступает - встреча напоминает о себе "реминдером", в этот момент, видимо, можно исполнить некий "OnTime"-код.
Рассказали бы про задачку несколько подробнее. Я хоть и программист, но под Outlook что-то делаю не каждый день, да что день - не каждый ГОД! Поэтому тоже всё исключительно "по методичке" (и если самому интересно).
Один из вариантов "запуска таймера" в Outlook, как я полагаю, назначение (создание), например, встречи. Время наступает - встреча напоминает о себе "реминдером", в этот момент, видимо, можно исполнить некий "OnTime"-код.Gustav
Я пытаюсь вот что сделать: У меня каждый день через SFTP уходят файлы с информацией. Иногда сотрудники бывает забыват ее отправить. Время последней отправки приблизительно в 17:00. При загрузки компьютера через автозапуск у меня открывается клига "ЧАСЫ", которая на рабочей панели не видна. В момент открытия срабатывае код Ontime, который запускает основную программу в 17:10:00. В самой программе работает проверка: Если время обновления папки на SFTP меньше чем 17:10:00, что выскакивает сообщение о необходимости проверить отправку файлов. Я подумал, может через Outlook будет более удобнее что-то подобнее реализовать.
Я пытаюсь вот что сделать: У меня каждый день через SFTP уходят файлы с информацией. Иногда сотрудники бывает забыват ее отправить. Время последней отправки приблизительно в 17:00. При загрузки компьютера через автозапуск у меня открывается клига "ЧАСЫ", которая на рабочей панели не видна. В момент открытия срабатывае код Ontime, который запускает основную программу в 17:10:00. В самой программе работает проверка: Если время обновления папки на SFTP меньше чем 17:10:00, что выскакивает сообщение о необходимости проверить отправку файлов. Я подумал, может через Outlook будет более удобнее что-то подобнее реализовать.A_3485
A_3485, если интересно, то вот мое ИМХО по тому, что я понял из Вашего рассказа.
Если бы я решал эту задачу, то уж точно не запускал бы с утра невидимый экземпляр Excel c единственной целью запустить через 8 часов OnTime-макрос. Это уж точно перебор. Вместо этого я бы запланировал (вручную!) в Календаре Outlook (или даже в мобильном телефоне) ежедневную напоминалку, скажем, на 17:05, которая призывала бы меня в 17:10 открыть файл с макросом и исполнить его по кнопке.
А когда бы мне надоело это делать вручную, то я использовал бы механизм "Назначенных заданий Windows" (как это было в XP), или какой-нибудь более современный Планировщик Windows (со времени XP я не пользовался этим функционалом, поэтому не знаю, как именно он называется сейчас). В любом случае там можно запустить в определенное время какую-либо программу (в нашем случае - Excel) с параметрами командной строки, которыми могут быть имя рабочей книги и имя макроса. Разумеется, внутри макроса можно в конце поставить команды закрытия книги и выхода из Excel, чтобы он не висел сутками...
A_3485, если интересно, то вот мое ИМХО по тому, что я понял из Вашего рассказа.
Если бы я решал эту задачу, то уж точно не запускал бы с утра невидимый экземпляр Excel c единственной целью запустить через 8 часов OnTime-макрос. Это уж точно перебор. Вместо этого я бы запланировал (вручную!) в Календаре Outlook (или даже в мобильном телефоне) ежедневную напоминалку, скажем, на 17:05, которая призывала бы меня в 17:10 открыть файл с макросом и исполнить его по кнопке.
А когда бы мне надоело это делать вручную, то я использовал бы механизм "Назначенных заданий Windows" (как это было в XP), или какой-нибудь более современный Планировщик Windows (со времени XP я не пользовался этим функционалом, поэтому не знаю, как именно он называется сейчас). В любом случае там можно запустить в определенное время какую-либо программу (в нашем случае - Excel) с параметрами командной строки, которыми могут быть имя рабочей книги и имя макроса. Разумеется, внутри макроса можно в конце поставить команды закрытия книги и выхода из Excel, чтобы он не висел сутками...Gustav
'далее - собственно код,выполняющий задачу 'Call что-то полезное MsgBox "Это напомнила о себе встреча: " & apti.Subject
'"заводим" ту же встречу на следующий раз, к примеру, через 5 минут With apti .Start = DateAdd("n", 5, Now) .End = DateAdd("n", 2, .Start) .ReminderSet = True .ReminderMinutesBeforeStart = 0 .Save End With
End If
Set apti = Nothing
End Sub
[/vba]
Поковырялся, состряпал пример, вроде работает: [vba]
Код
Private Sub Application_Reminder(ByVal Item As Object) 'эту процедуру помещаем в ThisOutlookSession
Dim apti As AppointmentItem Dim subj As String
'в Outlook вручную должна быть создана встреча с темой subj (см.ниже) 'напоминанием "0 мин" и временем начала = желаемому (например, 17:10)
'если напоминалка взлетела не от встречи - сразу выходим, другие нам не интересны If TypeName(Item) <> "AppointmentItem" Then Exit Sub
Set apti = Item
subj = "Отправка файлов в 17:10"
'проверяем, что встреча - наша If apti.Subject = subj Then
'далее - собственно код,выполняющий задачу 'Call что-то полезное MsgBox "Это напомнила о себе встреча: " & apti.Subject
'"заводим" ту же встречу на следующий раз, к примеру, через 5 минут With apti .Start = DateAdd("n", 5, Now) .End = DateAdd("n", 2, .Start) .ReminderSet = True .ReminderMinutesBeforeStart = 0 .Save End With