Outlook 2007 VBA - Aktion nur bei einem bestimmten Outlook -Konto anwenden
-
27-10-2019 - |
Frage
Ich verwende das folgende VBA -Projekt, um eine Standardzeichenfolge auf den Beginn des Fachfelds mit allen neuen E -Mails anzuwenden. Aber - Ich möchte nur, dass dieses Skript funktioniert, wenn Outlook in ein bestimmtes Konto geöffnet wurde (dh ich habe 2 Outlook -Benutzerkonten/PST -Dateien - Personal & Business - und möchte nur, dass die Betreff -Zeichenfolge zu E -Mails hinzugefügt wird, wenn ich in der arbeite Geschäftskonto) Daumen gekreuzt - Vielen Dank für Ihre Hilfe. Kirche
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
End Sub
Lösung 2
OK Cool. Tatsächlich bin ich auf eine völlig narrensichere und elegante Lösung gestoßen. In Outlook's Trust Center> Makrosicherheit habe ich die Option für "Warn für alle Makros" ausgewählt. Wenn ich nun Outlook für eines meiner Profile öffne, bekomme ich ein Pop-up, in dem ich Makros aktivieren/deaktivieren möchte. Da das VBA -Skript das einzige Makro ist, kann ich leicht filtern, ob die Standard -Subjektzeichenfolge verwendet wird. Das wird 100% der Zeit für immer funktionieren (da ich keinen Grund sehen kann, warum ich jemals ein anderes Makro-/VBA -Skript verwenden werde)
Andere Tipps
Dies ist die Grundlage eines Ansatzes.
Es ist irgendwann, seit ich mehrere Konten hatte, aber als ich es tat, waren die Ordner der obersten Ebene sehr unterschiedlich. Der folgende Code gibt in das unmittelbare Fenster die Namen der Ordner der obersten Ebene aus. Auf meinem aktuellen System würde dies geben:
Personal Folders
Archive Folders
Test Folders
Wenn Ihre beiden Konten unterschiedliche Ordner auf höchster Ebene haben, können Sie Ihre Konten davon unterscheiden.
Wenn Ihnen dieser Ansatz gefällt, aber die Ordner der obersten Ebene gleich sind, habe ich eine Routine, die nach einem bestimmten Ordner in der Hierarchie nach einem bestimmten Ordner sucht. Selbst wenn die Hauptordner gleich sind, gehe ich davon aus, dass einige der Unterordner unterschiedlich sind.
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