Настройка VBA для чтения личных сообщений - PullRequest
0 голосов
/ 18 октября 2011

пытается собрать вместе некоторый код VBA, чтобы в принципе иметь возможность запускать мои правила с помощью кнопки на моей панели инструментов в outlook 2007. Следующий код запускает правила для моей папки входящих сообщений сервера обмена, которая пуста, поскольку все перемещается в мою "личную"Входящие».Я просто хочу изменить код ниже, чтобы прочитать мой личный почтовый ящик, а не мой почтовый ящик обменного почтового ящика.Поиск в Интернете и не могу найти мой ответ и, следовательно, мой пост -

Sub RunAllInboxRules()
Dim st As Outlook.Store
Dim myRules As Outlook.Rules
Dim rl As Outlook.Rule
Dim count As Integer
Dim ruleList As String
'On Error Resume Next


' get default store (where rules live)
Set st = Application.Session.DefaultStore
' get rules
Set myRules = st.GetRules

' iterate all the rules
For Each rl In myRules
    ' determine if it's an Inbox rule
    If rl.RuleType = olRuleReceive Then
        ' if so, run it
        rl.Execute ShowProgress:=True
        count = count + 1
        ruleList = ruleList & vbCrLf & rl.Name
    End If
Next

' tell the user what you did
ruleList = "These rules were executed against the Inbox: " & vbCrLf & ruleList
MsgBox ruleList, vbInformation, "Macro: RunAllInboxRules"

Set rl = Nothing
Set st = Nothing
Set myRules = Nothing
End Sub

1 Ответ

0 голосов
/ 21 октября 2011

Попробуй это.Я проверил на моей машине.Это входит в почтовый ящик, в который вы вошли, и выполняет правила соответственно

Sub RunAllInboxRules()
Dim objOL As Outlook.Application
Dim st As Outlook.Store
Dim myRules As Outlook.Rules
Dim rl As Outlook.Rule
Dim count As Integer
Dim ruleList As String
Dim fldInbox As Object
Dim gnspNameSpace As Outlook.NameSpace

'On Error Resume Next

' get default store (where rules live)

'Logs into Outlook session
    Set objOL = Outlook.Application
    Set gnspNameSpace = objOL.GetNamespace("MAPI") 'Outlook Object
   'Logs into the default Mailbox Inbox

'set the store to the mailbox

Set st = gnspNameSpace.GetDefaultFolder(olFolderInbox).Store

' get rules

Set myRules = st.GetRules

' iterate all the rules
For Each rl In myRules
    ' determine if it's an Inbox rule
    If rl.RuleType = olRuleReceive Then
        ' if so, run it
        rl.Execute ShowProgress:=True
        count = count + 1
        ruleList = ruleList & vbCrLf & rl.Name
    End If
Next

' tell the user what you did
ruleList = "These rules were executed against the Inbox: " & vbCrLf & ruleList
MsgBox ruleList, vbInformation, "Macro: RunAllInboxRules"

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