#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. Так в чем проблема? Вам нужно быть намного более конкретным, чем это.