Страницы: 1
RSS
Вызов макроса outlook из кода в excel
 
Добрый день! Поскольку ограничения политики безопасности в организации обойти не удалось, массовая рассылка из макроса VBA в excel недоступна. Я проверил код отправки письма в outlook, и он спокойно работает без всяких ограничений на адресатов. Но... но тут я столкнулся с другой проблемой, вся обработка и создание файла производится в excel в цикле, соответственно каждый цикл должен завершаться отправкой письма, но макрос по отправке письма, если он в outlook не получается вызвать...
В интернете я нашел обсуждение аж от 2008 года, где предлагается такой вариант:
Код
Public Sub macroinOutlook()
    Dim olookApp As Object
    Set olookApp = CreateObject("Outlook.Application")
    
    olookApp.SendMail
    
    Set olookApp = Nothing
End Sub


Но данный недокументированный метод вызывает ошибку 438.
Покопавшись еще нашел другое мнение:
As far as I can tell, it's not possible to run macros that are stored in Outlook from other applications. Outlook lacks the Application.Run method that is available in Word and Excel.
То есть вызвать макрос, который написан в outlook невозможно?
Изменено: Baot - 13.07.2020 13:22:14
 
может так:
Код
Public Sub macroinOutlook()
    Dim olookApp As Object, mail As Object
    Set olookApp = CreateObject("Outlook.Application")
    Set mail = olookApp.CreateItem(0)
    
    With mail
        .To = "buchlotnik@mail.ru"
        .Subject = "test"
        .Body = "test"
        .Send
    End With
    
    Set mail = Nothing
    Set olookApp = Nothing
    
End Sub
Соблюдение правил форума не освобождает от модераторского произвола
 
Добрый день! Так не получится, поскольку это не вызов макроса сохраненного в outlook, а использование объекта mail из excel. Такой макрос и был изначально, но его блокирует настройка безопасности ms office (которые не согласовали изменить по политике безопасности организации). Я перенес отправку в сам outlook и там блокирования нет. Но нужно связать теперь два макроса расчеты и формирования файла в excel и непосредственно отправка в outlook.
 
Как вариант, можно объединить макросы экселя и аутлук в самом аутлуке и запускать из аутлука.
 
Цитата
Baot написал:
Но данный недокументированный метод вызывает ошибку 438.
почему недокументированный?
Цитата
Baot написал:
Поскольку ограничения политики безопасности в организации обойти не удалось, массовая рассылка из макроса VBA в excel недоступна.
Что блокирует? Если контроль на сервере, то ему все равно кто там отправляет, аутлук или ... .
Цитата
Baot написал:
но его блокирует настройка безопасности ms office
Конкретнее, что заблокировано.

Application.Run - не поможет, вы пытаетесь из (предположу что  Excel) запустить код в приложении Outlook, а не просто код который хранится там.
По вопросам из тем форума, личку не читаю.
Страницы: 1
Наверх