2016-08-12 2 views
3

Я пытаюсь создать макрос, который изменяет тему электронной почты, соответствующую критериям, которые пользователь выполнил.Изменение темы выбранных элементов в Outlook с помощью VBA

Так, например, пользователь выполняет поиск «яблоки» в своем почтовом ящике, а затем использует этот макрос, чтобы изменить все электронные письма, связанные с яблоками, чтобы [APPLES] в теме.

Проблема в том, что код, который у меня есть, изменяет тему только одного электронного письма, на которое нажал пользователь, а не всех выбранных сообщений электронной почты. Я довольно новичок в VBA, но я уверен, что он имеет какое-то отношение к ActiveExplorer и функциям выбора, которые я использую.

Вот код:

Sub AddString() 
Dim myolApp As Outlook.Application 
Dim aItem As Object 

Set myolApp = CreateObject("Outlook.Application") 
Set mail = myolApp.ActiveExplorer.CurrentFolder 
Dim iItemsUpdated As Integer 
Dim strTemp As String 
Dim strString As String 
Dim myOlExp As Outlook.Explorer 
Dim myOlSel As Object 


' User input 
strString = InputBox("Enter the project code") 
iItemsUpdated = 0 

' Empty value or cancel button 
If strString = "" Then Exit Sub 

' Writes string to e-mail subject 
Set myOlExp = myolApp.ActiveExplorer 
Set myOlSel = myOlExp.Selection 
For x = 1 To myOlSel.Count 
    strTemp = "[" & strString & "] " & myOlSel.Item(x).Subject 
    myOlSel.Item(x).Subject = strTemp 
    myOlSel.Item(x).Save 
    iItemsUpdated = iItemsUpdated + 1 
Next x 

' Tells user how many items have been updated 
MsgBox iItemsUpdated & " of " & mail.Items.Count & " Messages Updated" 
Set myolApp = Nothing 
End Sub 

ответ

1

Просто добавьте myOlExp.SelectAllItems в код, как

' Writes string to e-mail subject 
Set myOlExp = myolApp.ActiveExplorer 
myOlExp.SelectAllItems 
Set myOlSel = myOlExp.Selection 
Смежные вопросы