Outlook VBA CreateObject не работает во время Application_Startup ()

Я написал макрос в Outlook, который открывает файл Excel, а затем запускает другой макрос в электронной таблице Excel. Макрос Excel, в свою очередь, сохраняет некоторые диаграммы в виде файлов PDF и открывает Outlook для отправки их по электронной почте в виде вложений.

Когда я запускаю этот макрос с уже открытым Outlook, он работает нормально. Однако, если я назначаю макрос для выполнения в событии Application_Startup при запуске, я получаю сообщение об ошибке в макросе Excel, в котором говорится, что ActiveX не может создать желаемый объект. Он появляется в первой строке этого кода:

Set OutApp = CreateObject("Outlook.Application")
Set OutMail = OutApp.CreateItem(0)

Я сделал Dim обе переменные как объекты. Извините за вопрос новичка, но мне не удалось найти объяснение за несколько часов поиска.

Почему это происходит только тогда, когда макрос запускается во время запуска? Связано ли это с тем, что Excel или Outlook не полностью загружаются во время попытки запуска макроса?


person Greg    schedule 09.11.2018    source источник
comment
Какое точное сообщение об ошибке?   -  person Dmitry Streblechenko    schedule 10.11.2018


Ответы (2)


Первым делом я попробую перерегистрировать серверный компонент, запустив Outlook из командной строки с переключателем / RegServer.

Во-вторых, я бы проверил настройки запуска / активации для компонента Microsoft Outlook с помощью утилиты dcomcnfg для Windows. (Щелкните правой кнопкой мыши «Пуск», «Выполнить»> dcomcnfg, разверните «Службы компонентов», разверните «Мой компьютер», разверните «Конфигурация DCOM», найдите Microsoft Outlook в списке, щелкните правой кнопкой мыши> «Свойства», вкладка «Безопасность».

Вот ссылка на страницу поддержки Microsoft, которая может иметь отношение к вашей проблеме ...

Вы получаете ошибку 429 во время выполнения при автоматизации приложений Office

Если вы можете указать номер ошибки и версию Office, а также указать, является ли ваш компьютер частью домена AD, возможно, будет проще добраться до источника вашей проблемы!

person Allumearz    schedule 09.11.2018
comment
Я полный новичок в этой теме. Вы предлагаете ввести путь к файлу C: \ для outlook.exe на моем компьютере, а затем добавить / RegServer? Если да, я получаю, что аргумент командной строки недействителен. Проверьте переключатель, который вы используете. - person Greg; 09.11.2018
comment
Я использую Office '13, и у вас правильный номер ошибки. Я не уверен, что это часть домена AD. - person Greg; 09.11.2018
comment
Как насчет этой ссылки ... CreateObject Outlook.Application не работает. Похоже, это не просто проблема активации. - person Allumearz; 12.11.2018

Не так давно у меня была похожая проблема.

Лучше начать весь этот процесс с конца Excel, а не открывать Excel из Outlook.

Итак, откройте Excel, сохраните диаграммы в PDF и ЗАТЕМ откройте Outlook из макроса Excel, чтобы отправить электронное письмо. Макросы Outlook не используются.

person Nick    schedule 09.11.2018
comment
Спасибо. Это похоже на то, что сделал я. Я просто сохранил файлы с помощью макроса Excel и отправил / прикрепил их с помощью макроса Outlook после завершения работы с Excel. Это сработало, но я все еще разочарован тем, что не понял, в чем проблема. Я займусь этим еще раз, когда у меня будет время. Спасибо вам обоим за вашу помощь. - person Greg; 12.11.2018