Outlook VBA несколько вариантов выбора электронной почты

#vba #outlook

#vba #outlook

Вопрос:

Я пытаюсь получить информацию из моего выбора, но мне не повезло. Вот мой код для одного элемента, но я не могу заставить его работать с моими выбранными элементами:

     Function GetCurrentItem() As Object
   Dim objApp As Outlook.Application

    Set objApp = Application
    On Error Resume Next
    Select Case TypeName(objApp.ActiveWindow)
        Case "Explorer"
            Set GetCurrentItem = objApp.ActiveExplorer.Selection.item(1)
        Case "Inspector"
            Set GetCurrentItem = objApp.ActiveInspector.currentItem
    End Select

    Set objApp = Nothing


    End Function
 

Как бы я превратил это в использование выбора электронных писем?

Вторая половина Дмитрий:

 Sub Process_Email(oMail As MailItem)
    Dim MailSubject$
    MailSubject = LCase(Trim(oMail.Subject))

    If MailSubject = "Subject 1" Then
        Call Extract_And_Export_1(oMail.Body)

    ElseIf MailSubject = "Subject 2" Then
        Call Extract_And_Export_2(oMail.Body)


    ElseIf InStr(1, oMail.Body, "Body Field One", vbTextCompare) > 0 Then

            Call Extract_And_Export_5(oMail.Body)
    End If
End Sub
 

Ответ №1:

Ваша функция объявлена для возврата одного элемента. Как вы можете вернуть из него несколько элементов?

В случае проводника выполните цикл по всем элементам в коллекции выбора:

  Select Case TypeName(objApp.ActiveWindow)
    Case "Explorer"
        for each item in  objApp.ActiveExplorer.Selection
          MsgBox item.Subject
        next
 

Комментарии:

1. Спасибо, Дмитрий, за ваш ответ. Это было бы правильно в стандартном случае, однако я столкнулся с несколькими ошибками на моей стороне темы и проверки тела. Вот еще один код, ведущий к сообщениям.

2. Так в чем проблема? Вам нужно быть намного более конкретным, чем это.