Отладка Outlook.MailItem - PullRequest
       9

Отладка Outlook.MailItem

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

Я загрузил Outlook.MailItem в свою папку Y:\ по адресу:

Y:\email.msg

В Outlook VBA я хочу протестировать скрипт для этого элемента.Однако я не уверен, как его определить.

У меня есть следующее:

Dim testMail As MailItem
Set testMail = Application.CreateItem(olMailItem)

Но как мне сделать ссылку на точный элемент, который я сохранил?


После этого я хочу проверить хранение вложения в этом файле с помощью кода (который иногда не всегда создает поврежденный файл):

Public Sub Save_File(MItem As Outlook.MailItem)
    On Error Resume Next

    ' init
    Dim oAttachment As Outlook.Attachment
    Dim folderSave As String
    Dim yyyymmdd As String
    Dim fileName As String
    Dim fileNameFull As String

    ' date @T (midnight 00:00)
    Dim mydate As Date
    mydate = MItem.ReceivedTime

    ' filename and path
    yyyymmdd = get_yyyymmdd_prevday(mydate)


    folderSave = "V:\Operations\"
    fileName = yyyymmdd & "-FileToStore.csv"


    fileNameFull = folderSave & fileName

    For Each oAttachment In MItem.Attachments

        If fileExist(fileNameFull) = False Then
            ' if file does not exist
            oAttachment.SaveAsFile fileNameFull
        End If

    Next

End Sub

И функция справки:

Public Function get_yyyymmdd_prevday(mydate As Date) As String
    Dim yyyymmddstr As String
    'Previous Business Date

    Dim yyyy As String
    Dim mm As String
    Dim dd As String


    If Weekday(mydate) = 2 Then
        mydate = mydate - 3
    Else
        mydate = mydate - 1
    End If


    yyyy = Year(mydate)
    mm = Month(mydate)
    dd = Day(mydate)

    If Month(mydate) < 10 Then
        mm = "0" & mm
    End If
    If Day(mydate) < 10 Then
        dd = "0" & dd
    End If

    ' -->
    yyyymmddstr = yyyy & "_" & mm & "_" & dd
    get_yyyymmdd_prevday = yyyymmddstr
End Function

Ответы [ 2 ]

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

Вы можете изменить «On Error Resume Next» на «On Error GoTo Handler».

Вы можете использовать это для отладки Outlook.MailItem

Для получения дополнительной информации вы можете обратиться по этой ссылке:

В заявлении об ошибке (Visual Basic)

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

Для ссылки на MSG-файл существует OpenSharedItem.

Option Explicit

Private Sub Reference_msg_file()

    Dim testMailPathFile As String
    Dim testMail As MailItem

    testMailPathFile = "Y:\email.msg"

    Set testMail = Session.OpenSharedItem(testMailPathFile)
    'testMail.Display

    Save_File testMail

ExitRoutine:
    Set testMail = Nothing

End Sub

Вы отключили отладку с помощью On Error Resume Next.Удалите эту строку и выясните, как ее использовать, прежде чем применять ее к любому будущему коду.

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