Страницы: 1
RSS
Не запускается макрос excel из планировщика заданий Windows
 
Добрый день! Буду благодарна за помощь с проблемой ниже.

Задача - по расписанию (раз в неделю или раз в день в определенное время) отправлять Outlook сообщение. Макросы в outlook не разрешены политикой компании.

Имеется:
- скрипт vba в excel файле, который создает и отправляет сообщение outlook
- файлик vbs, который открывает excel файл, разрешает в нем макросы и исполняет нужный скрипт vba
- планировщик заданий windows, который должен исполнять vbs по расписанию

Если для проверки запустить vbs через командную строку, то все работает отлично.

Проблема следующая - планировщик заданий исполняет vbs файл, который запускает и открывает excel файл. Но вот vba скрипт в excel уже не исполняется и спустя минуту excel выдает ошибку Server execution failed.

Есть какие-то предположения, с чем это может быть связано?  
Изменено: tosvr - 10.09.2021 14:30:01
 
Цитата
tosvr написал:
с чем это может быть связано?  
Не является ответом на поставленный вопрос. Но, возможно, сгодится, как решение проблемы.
В 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.
Изменено: vikttur - 11.09.2021 20:41:12
 
tosvr, от какой учетной записи работает планировщик? Это важно и для Excel и особенно для Outlook.
Зачем Excel как прослойка. Перенесите код в VBS.
По вопросам из тем форума, личку не читаю.
 
кнопка цитирования не для ответа [МОДЕРАТОР]

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

Я разобралась в чем проблема - планировщик успешно выполняет задачу, если у меня закрыт Outlook. Но если он открыт, то получается ошибка.
Как дальше правильнее сделать? дописать какой-то код вроде "закрыть outlook" или какую-то проверку на то, открыт он или нет?  
Изменено: vikttur - 11.09.2021 20:41:58
 
tosvr, почитайте.

Формула массива (ФМ) вводится Ctrl+Shift+Enter
Memento mori
 
Проблема решена следующим образом:
в планировщике заданий отключена галочка "выполнить с наивысшими правами".
Страницы: 1
Наверх