Не удается открыть Outlook из Excel на компьютере с Windows 11.

Вопрос или проблема

У меня есть макрос, который может отправлять электронные письма через Outlook из Excel 365.
Макрос работает на компьютерах с Windows 10.
Но тот же макрос, установленный на компьютере с Windows 11, выдает ошибку:
Ошибка времени выполнения ‘429’:
Компонент ActiveX не может выполнить объект.

Проблема заключается в GetObject, как в этом коде:

Function Test()
Dim MyOLApp As Outlook.Application
Set MyOLApp = GetObject(, "Outlook.Application")
End Function

Outlook запущен.
Ссылка на библиотеку объектов Microsoft Outlook 16.0 установлена.
Код скомпилирован.
MyOLApp, похоже, имеет все доступные методы и процедуры (добавив точку: например, MyOLApp.ActiveExplorer).
Та же проблема возникает в Access.
GetObject работает с Word, но не с Excel или Outlook.

CreateObject создает новый экземпляр Outlook, но не связанного с уже работающим Outlook.
Я могу создать новое письмо, но компьютер не может его отправить, потому что нет аккаунта.

На компьютере с Windows 10 код получает ссылку на Outlook, а затем создает электронное письмо.
На компьютере с Windows 11 это не удается.
Все остальное выглядит так же
(но, предполагаем, что что-то не так).

Ответ или решение

К сожалению, возникает ошибка при попытке доступа к Outlook из Excel на компьютере с Windows 11. Данная проблема может быть связана с различиями в настройках безопасности и разрешениях между операционными системами Windows 10 и Windows 11.

Проблема

Ваша макрос выполняет функцию поиска экземпляра Outlook с использованием метода GetObject, что возможно, когда Outlook уже открыт. Однако, при запуске на Windows 11, возникает ошибка выполнения ‘429’: "ActiveX component cannot run object". Это может быть связано с несовместимостью или изменениям в системных настройках, которые влияют на доступ к объектам Office.

Возможные решения

  1. Проверка настроек доверия в Excel и Outlook:

    • Убедитесь, что ваши настройки безопасности в Excel и Outlook позволяют выполнение макросов. Для этого перейдите в:
      • Excel: Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Настройки макросов. Убедитесь, что выбраны соответствующие опции.
      • Outlook: Файл → Параметры → Центр управления безопасностью → Параметры центра управления безопасностью → Настройки макросов.
  2. Перепроверка библиотек и ссылок:

    • В редакторе VBA (Alt + F11) перейдите в меню Инструменты → Ссылки и убедитесь, что "Microsoft Outlook 16.0 Object Library" отмечена.
    • Также проверьте наличие других библиотек, которые могут вызвать конфликты.
  3. Запуск Outlook от имени администратора:

    • Некоторые компоненты могут требовать дополнительных прав. Попробуйте открыть Outlook с повышенными правами. Щелкните правой кнопкой мыши по значку Outlook и выберите «Запуск от имени администратора».
  4. Использование CreateObject:

    • Если GetObject не работает, вы можете временно использовать CreateObject, но убедитесь, что вы инициализируете Outlook правильно, чтобы избежать создания нового экземпляра:
      Function Test()
       Dim MyOLApp As Object
       On Error Resume Next
       Set MyOLApp = GetObject(, "Outlook.Application")
       If MyOLApp Is Nothing Then
           ' Если Outlook не запущен, создаем новый экземпляр
           Set MyOLApp = CreateObject("Outlook.Application")
       End If
       On Error GoTo 0
      End Function
  5. Проверка обновлений:

    • Проверьте наличие обновлений для Windows 11 и Office 365. Иногда обновления могут устранить совместимость и ошибки.
  6. Проверка на наличие поврежденных компонентов:

    • Используйте встроенные средства диагностики Office для проверки и восстановления установленного ПО. Это можно сделать через Панель управления → Программы и компоненты → Microsoft Office → Изменить → Восстановление.
  7. Настройка реестра (только для опытных пользователей):

    • Проверьте настройки реестра, касающиеся DCOM и ActiveX, чтобы убедиться, что доступ к приложению Outlook не ограничен.

Заключение

Разница в поведении вашей программы между Windows 10 и Windows 11 может быть вызвана множеством факторов, включая изменения в безопасности и разрешениях. Работая шаг за шагом и проверяя каждый из вышеупомянутых аспектов, вы сможете выявить и устранить причину возникшей ошибки. В случае если проблема сохраняется, рекомендую обратиться в службу поддержки Microsoft для более детального расследования специфической проблемы вашего компьютера с Windows 11.

Оцените материал
Добавить комментарий

Капча загружается...