Добрый день! Буду благодарна за помощь с проблемой ниже.
Задача - по расписанию (раз в неделю или раз в день в определенное время) отправлять Outlook сообщение. Макросы в outlook не разрешены политикой компании.
Имеется: - скрипт vba в excel файле, который создает и отправляет сообщение outlook - файлик vbs, который открывает excel файл, разрешает в нем макросы и исполняет нужный скрипт vba - планировщик заданий windows, который должен исполнять vbs по расписанию
Если для проверки запустить vbs через командную строку, то все работает отлично.
Проблема следующая - планировщик заданий исполняет vbs файл, который запускает и открывает excel файл. Но вот vba скрипт в excel уже не исполняется и спустя минуту excel выдает ошибку Server execution failed.
Есть какие-то предположения, с чем это может быть связано?
Не является ответом на поставленный вопрос. Но, возможно, сгодится, как решение проблемы. В Excel-файл запускать макрос по событию открытия книги. Закрывать книгу. В планировщике запускать не vbs, а excel-файл.
Такая же история - запускает эксель, а макрос не выполняет.
Попробовала добавить в книгу другой простой макрос (типа MsgBox "Test") - его планировщик исполнил и через vbs, и через excel. То есть планировщику не нравится макрос на создание сообщения outlook по непонятной мне причине. Вот код:
Код
Sub send_email()
Dim olApp As Object
Dim olMailItm As Object
Dim strSubj As String
Dim myToday As String
Dim strBody As String
Dim useremail As String
Dim myemail As String
strSubj = "тема письма"
myToday = Date
On Error GoTo dbg
Set olApp = CreateObject("Outlook.Application")
Set olMailItm = olApp.CreateItem(0)
useremail = "mail@mail.ru"
strBody = "Текст письма... "
olMailItm.To = useremail
olMailItm.Subject = strSubj
olMailItm.BodyFormat = 2
olMailItm.Body = strBody
olMailItm.Display
Set olMailItm = Nothing
Set olApp = Nothing
dbg:
If Err.Description <> "" Then MsgBox Err.Description
End Sub
После перезагрузки компьютера планировщик успешно запустил макрос. На вторую попытку снова выдал Server execution failed.
А как проверить, от какой уч записи? В задаче стоят галки "выполнять с наивысшими правами" и "выполнять только для пользователей, вошедших в систему".
Я разобралась в чем проблема - планировщик успешно выполняет задачу, если у меня закрыт Outlook. Но если он открыт, то получается ошибка. Как дальше правильнее сделать? дописать какой-то код вроде "закрыть outlook" или какую-то проверку на то, открыт он или нет?