Outlook VBA Application_Startup () не запускается - PullRequest
0 голосов
/ 02 октября 2018

У меня возникают проблемы с запуском моей подпрограммы Application_Startup при открытии внешнего вида.Я поместил это в объект внешнего вида ThisOutlookSession.Однако скрипт из Application_ItemSend работает нормально (события правильно инициируются при отправке почты).

Макрос Application_Startup работает нормально, когда я запускаю его вручную после открытия outlook - только не при самом запуске.

Создание подчиненного частного значения не имеет значения - равно как и общедоступные переменные.

У меня есть настройки макросов для «Включить все макросы» в центре управления безопасностью.

Я в Outlook 2016на ПК под управлением Windows 10 Enterprise.

Я интенсивно исследовал проблему, но, похоже, не могу понять, что заставляет подпрограмму не срабатывать.

Любая помощь будет принята с благодарностью!

Option Explicit

Dim add_str As String

Public Sub Application_Startup()

    Dim olNs As Outlook.NameSpace
    Dim Folder As Outlook.MAPIFolder
    Dim SubFolder As Outlook.MAPIFolder
    Dim Item As Object

    Set olNs = Application.GetNamespace("MAPI")
    Set Folder = olNs.Folders("albrobin@workmail.com").Folders("WORKFLOW").Folders("Reporting")

    For Each SubFolder In Folder.Folders
        If SubFolder.items.Restrict("[UnRead] = True").Count > 0 Then
            For Each Item In SubFolder.items
                Item.UnRead = False
            Next
        End If
    Next

End Sub

Public Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)

    If TypeName(Item) <> "MailItem" Then
        Exit Sub
    End If

    If Item.Subject Like "RE: *" _
        Or Item.Subject Like "AW: *" _
        Or Item.Subject Like "FW: *" Then
        Exit Sub
    End If

    UserForm1.Show

    If add_str = "[URGENT] " Then
        Item.Importance = olImportanceHigh
    End If

    Item.Subject = add_str & Item.Subject

    add_str = vbNullString

End Sub
Public Sub routine(str_ As String)
    add_str = Replace(str_, vbCrLf, " ")
    add_str = "[" & add_str & "] "
End Sub
Sub show_form1()
    UserForm1.Show
End Sub

Ответы [ 2 ]

0 голосов
/ 22 октября 2018

Возникла та же проблема с процедурой Application_Startup (), которая не запускалась после перезагрузки системы и восстановления моего VBAProject.Проверил настройки макроса, подписал проект цифровой подписью - не повезло.Не получено ни одной кнопки для включения VBA во время запуска, как в Office 2010. VBA будет работать, но потребовал, чтобы я вручную запустил процедуру Application_Startup ().

Попытался создать новую временную процедуру "Private Application_Startup ()",но не радость.

Я удалил «Public» оператор, который предшествовал объявлению Application_Startup ().Сохранено, закрыто VBA и Outlook.Вновь открылся, и вдруг он начал работать.Восстановили «Public», сохранили, заново открыли, и теперь кажется, что он работает правильно.Никаких объяснений.

0 голосов
/ 03 октября 2018

Я проверил ваш код и столкнулся с той же проблемой.Я решил эту проблему, перезагрузив компьютер и добавив метод Public Sub Application_Quit ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...