Как вернуть свойство объекта, переданного в параметре? - PullRequest
0 голосов
/ 29 февраля 2020

Я пытаюсь прочитать тему сообщения электронной почты и сохранить ее как переменную.

В целях тестирования я установил его для использования в качестве имени файла для текстового файла.

Мой код возвращает пустую строку.

  1. Я отправляю электронное письмо на адрес адрес электронной почты, код которого указан ниже: ThisOutlookSession
  2. Тема сообщения Topic (923832)
  3. Код выполняется без ошибок
  4. Имя текстового файла пусто

Почему str = oMail.Subject не может ничего прочитать?

Вот мой код: (On Error Resume Next теперь удалено.)

Option Explicit

Private WithEvents olInboxItems As Items

Private Sub Application_Startup()
  Dim objNS As NameSpace
  Set objNS = Application.Session
  ' instantiate objects declared WithEvents
  Set olInboxItems = objNS.GetDefaultFolder(olFolderInbox).Items
  Set objNS = Nothing
End Sub

Private Sub olInboxItems_ItemAdd(ByVal Item As Object)

    'On Error Resume Next

    Dim oMail As Outlook.MailItem
    Dim str As String
    Dim openPos As Integer
    Dim closePos As Integer
    Dim midBit As String
    Dim strFolderPath

    Dim fso As Object
    Dim oFile As Object
    Set oFile = fso.CreateTextFile(strFolderPath & midBit & ".txt")
    Set fso = CreateObject("Scripting.FileSystemObject")

    strFolderPath = "C:\temp\Attachments\"
    str = oMail.Subject

    openPos = InStr(str, "(")
    closePos = InStr(str, ")")

    If oMail.SenderEmailAddress = "username@mail.com" Then

        If Item.Attachments.Count > 0 Then

            midBit = Mid(str, openPos + 1, closePos - openPos - 1)

            oFile.WriteLine midBit
            oFile.Close

        End If

    End If

    Set fso = Nothing
    Set oFile = Nothing

End Sub

1 Ответ

2 голосов
/ 29 февраля 2020

Используйте ByVal Item As Object Не oMail As Outlook.MailItem

Private Sub olInboxItems_ItemAdd(ByVal Item As Object)

    If TypeOf Item Is Outlook.MailItem Then

        Debug.Print Item.Subject

    End If


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