Outlook: применить правила к текущему сообщению?

KMail имеет действительно полезную функцию: вы можете определить ряд правил, которые выполняются только при нажатии сочетания клавиш, а затем только на выделенные сообщения. Это позволяет мне читать сообщение, когда оно входит в папку «Входящие», а затем удалять его одним нажатием клавиши.

Как я могу воспроизвести это в Outlook? Возможно, какой-то скрипт VBA, вызванный нажатием клавиши, запускает все правила против всех выбранных в настоящее время сообщений?

Да, вы можете это сделать, но вы должны быть немного сложнее. Обзор шагов: создайте правила подачи, которые ищут категорию, затем запустите кнопку запуска макроса, чтобы изменить сообщения, выбранные для этой категории, а затем запустите правила. См. Полный ответ на этот вопрос, включая макрокоманду …

Быстрое выполнение правил Outlook по требованию?

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

Насколько велика ваша папка? Вы можете запускать правила вручную , но это относится ко всей папке, но я полагаю, что это может быть очень медленным, если ваша папка имеет большое количество сообщений.

Эта ссылка описывает использование «Управление правилами и предупреждениями» на вкладке «Файл» в «Запуск правил сейчас».

К сожалению, нет способа запуска правил Outlook для выбранных сообщений. Только по папкам. 🙁 Даже с использованием объектной модели Outlook в VBA.

Вы можете помочь себе в такой вспомогательной процедуре:

Public Sub TestMessageRule() ' Routine to test Mail Handlers MessageRule()' ' without incoming mail messages ' select an existing mail before executing this routine Dim objItem As Object Dim objMail As Outlook.mailItem Dim started As Long For Each objItem In Application.ActiveExplorer.Selection If TypeName(objItem) = "MailItem" Then Set objMail = objItem ' add the following declaration at the header: ' Private Declare Function GetTickCount Lib "kernel32.dll" () As Long started = GetTickCount() MessageRule objMail ' showCheckerMail objMail.BillingInformation Debug.Print "elapsed " & (GetTickCount() - started) / 1000# & "s" End If Next End Sub 

Ответ: Нет и Да. Нет сообщениям, да сообщениям, которые вы перемещаете в папку.

Основной VBA используется на многих сайтах http://www.slipstick.com/outlook/rules/run-outlook-rules-startup/

 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 And rl.IsLocalRule = True 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 

Если вы хотите запустить его в папку, в которую вы переместили сообщения, а не в папку «Входящие», укажите эту папку.

http://msdn.microsoft.com/en-us/library/office/ff864433%28v=office.14%29.aspx

Предположим, вы создали папку под папкой «Входящие» с именем «RunRules»

Как только вы переместите сообщение (сообщения) в папку:

 Set fldRunRules = st.GetDefaultFolder(olFolderInbox).Folders("RunRules") rl.Execute Folder:=fldRunRules 
  • Ошибка: «Не удалось найти Installable ISAM»
  • Почему у меня возникают проблемы с назначением диапазона для массива вариантов
  • расплавить / переделать в excel с помощью VBA?
  • Как выбрать переключатели по значению ячейки в Excel?
  • Неинтерфейс SQL Injection
  • Как VBA может подключаться к базе данных MySQL в Excel?
  • Закрытие приложения Excel с помощью VBA
  • Какова функция FormulaR1C1?
  • Как анализировать XML с помощью vba
  • Функция для преобразования номера столбца в букву?
  • Как объединить значения из нескольких строк в одну строку в Excel?
  • Давайте будем гением компьютера.