Outlook 2007 VBA - подайте заявку только в конкретной учетной записи Outlook

StackOverflow https://stackoverflow.com/questions/9344617

  •  27-10-2019
  •  | 
  •  

Вопрос

Я использую следующий проект VBA, чтобы применить строку по умолчанию к началу поля субъекта со всеми новыми электронными письмами. Но - я хочу, чтобы этот скрипт функционировал только тогда, когда Outlook был открыт в определенную учетную запись (то есть у меня есть 2 учетные записи пользователей Outlook/PST -файлы - личные и бизнес - и хочу, чтобы строка предмета добавлялась в электронные письма, когда я работаю в Бизнес -аккаунт) Скрещенные пальцы - спасибо за вашу помощь. Кирк

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
If MsgBox("Send with 'Myrtleford Festival" at start of subject?", vbYesNo, "Send as Festival mail") = vbYes Then
        If (Left(Trim(Item.Subject), 11)) <> "The " Then
    Item.Subject = "The Myrtleford Festival 2012/ " + Item.Subject
    End If
End If

Конец суб

Это было полезно?

Решение 2

Окей круто. На самом деле я наткнулся на совершенно надежное и элегантное решение. В Центре доверия Outlook> Macro Security я выбрал опцию «Warn для всех макросов». Теперь, когда я открываю Outlook для любого из моих профилей, я получаю всплывающее окно с вопросом, хочу ли я включить/отключить макросы. Поскольку скрипт VBA является единственным запущенным макросом, я могу легко отфильтровать, используется ли строка субъекта по умолчанию. Который будет работать в 100% случаев навсегда (так как я не вижу причин, почему я когда -либо буду использовать другой сценарий макро/VBA)

Другие советы

Это основа подхода.

Это когда -нибудь, так как у меня было несколько учетных записей, но когда я это сделал, папки верхнего уровня были очень разными. Приведенный ниже код выводит в непосредственное окно имена папок верхнего уровня. В моей нынешней системе это дало бы:

Personal Folders
Archive Folders
Test Folders

Если ваши два учетные записи имеют разные папки на верхнем уровне, вы можете отличить от этого свои учетные записи.

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

Sub AnswerA()

  Dim InxIFLCrnt As Integer
  Dim TopLvlFolderList As Folders

  Set TopLvlFolderList = _
          CreateObject("Outlook.Application").GetNamespace("MAPI").Folders

  For InxIFLCrnt = 1 To TopLvlFolderList.Count
    Debug.Print TopLvlFolderList(InxIFLCrnt).Name
  Next

End Sub
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top