2016-06-02 7 views
2

Ich versuche zu automatisch diesen Workflow erreichen:Wie wird automatisch ein Makro beim Öffnen eines Entwurfs in Outlook ausgeführt? (Fügen Sie ein BCC)

  • wenn Benutzer öffnet eine Nachricht Entwurf in Outlook (a generated EML file)
  • wenn das Subjekt eine Zeichenfolge übereinstimmt (unveränderlich, vorher bekannt, ich kann es nicht ändern; es ist etwas wie xyžřy, beachten Sie die Nicht-ASCII-Zeichen):
  • dann fügen Sie eine E-Mail zum BCC-Feld hinzu (unveränderlich, kno wn vorher, gültige E-Mail-Adresse; Lassen Sie uns sagen, es ist [email protected])

Ich weiß schon der letzte Teil - how to add a BCC to a message, und ich verwende InStr zum Abgleichen:

Sub addbcc() 
Dim objRecip As Recipient 
Set oMsg = Application.ActiveInspector.CurrentItem 

With oMsg 

    If InStr(1, oMsg.Subject, "xyžřy") > 0 Then 

     Set objRecip = oMsg.Recipients.Add("[email protected]") 
     objRecip.Type = olBCC 
     objRecip.Resolve 

    End If 

End With 

Set oMsg = Nothing 

End Sub 

jedoch noch der Benutzer daran zu erinnern, muss einen Knopf zu drücken dieses Makro auszuführen , was nicht bequemer ist, als den BCC manuell einzugeben. Ist es möglich, das Makro automatisch ausführen, wenn diese E-Mail geöffnet ist?

+0

Ich bin mir bewusst, dass dies sieht aus wie ein XY-Problem ("well das BCC auf den erzeugten Entwurf hinzufügen, duh"). Leider scheint es, dass das Laden von BCC aus einer EML-Entwurfsnachricht (mein Endziel) etwas ist, was Outlook nicht kann, also suche ich nach Ork-Arounds. Es gibt Add-Ins dafür, aber ich erkunde kurz andere Alternativen, die keinen komplexen Code von Drittanbietern für solch ein kleines Problem beinhalten; Ich bin in Ordnung mit der Verwendung eines solchen Add-Ins, wenn keine anderen Optionen verfügbar sind; aber in einem größeren Einsatz wäre dies nicht "nur Gabel 20 Dollar, fügen Sie eine Auto-BCC-Regel und damit fertig sein" (sonst würde ich nicht einmal stören). – Piskvor

+0

Sind einige Beispiele auf dieser Seite hilfreich? Https://msdn.microsoft.com/en-us/library/office/ff865989.aspx – Jordan

Antwort

1

Ist es möglich, das Makro automatisch zu starten, wenn diese E-Mail geöffnet wird?

Businesses NewInspector Event tritt Ereignisse, wenn neue Fenster durch den Benutzer oder durch den Code geöffnet wird.

Beispiel

Option Explicit 
Private WithEvents Inspectors As Outlook.Inspectors 

Private Sub Application_Startup() 
    Initialize_handler 
End Sub 

Public Sub Initialize_handler() 
    Set Inspectors = Application.Inspectors 
End Sub 

Private Sub Inspectors_NewInspector(ByVal Inspector As Outlook.Inspector) 
    If Inspector.currentItem.Class = olMail Then 
     If Inspector.currentItem.Parent = "Drafts" Then ' Drafts Folder 

      Debug.Print Inspector.currentItem.Subject ' Immediate Window 
      ' Call Your Code 
      ' Inspector.currentItem.BCC = "[email protected]" 
     End If 
    End If 
End Sub 

CurrentItem Property