Ordnerauswahl beim SendenMit diesem Code können Sie einen beliebigen E-Mailordner beim Senden einer E-Mail als Ablage auswählen. Zur Verwendung dieses Beispiels beachten Sie bitte die wichtigen Hinweise, sowie den Workshop VBA in Outlook® verwenden. Den Code bitte in ein neues Modul kopieren (Einfügen -> Modul im VBA-Editor). Für Outlook® 2000, Outlook® 2002, Outlook® 2003, Outlook® 2007 Option Explicit Public Function SentFolder(ByRef Item As Object) As Boolean '===================================================================== ' Zeigt beim Senden einer E-Mail den Outlook®-Auswahlordner an um die ' E-Mail bei Bedarf in einen anderen Ordner als "Gesendete Objekte" ' abzulegen. ' (c) Peter Marchert - http://www.outlook-stuff.com ' 2008-11-19 Version 1.0.1 '===================================================================== Dim objFolder As Object '--------------------------------------------------------------------- ' Obwohl in den Eigenschaften der Hilfe die SaveSentMessageFolder- ' eigenschaft auch für Besprechungsanfragen möglich sein sollte, kommt ' es bei diesen zu einem Fehler. Daher wird vor der Verwendung dieser ' Funktion abgefragt, ob es sich bei dem Item um eine E-Mail handelt. '--------------------------------------------------------------------- If Not Item.Class = olMail Then Exit Function '--------------------------------------------------------------------- ' Schleife wird solange durchlaufen, bis ein gültiger Ordner ausgewählt ' oder die Auswahl abgebrochen wird. '--------------------------------------------------------------------- Do '----------------------------------------------------------------- ' Ordnerauswahl anzeigen '----------------------------------------------------------------- Set objFolder = Nothing Set objFolder = Outlook.Session.PickFolder '----------------------------------------------------------------- ' Wurde die Auswahl abgebrochen? '----------------------------------------------------------------- If objFolder Is Nothing Then SentFolder = True Exit Function End If '----------------------------------------------------------------- ' Falscher Ordnertyp ausgewählt? '----------------------------------------------------------------- If InStr(objFolder.DefaultMessageClass, "IPM.Note") = 0 Then Set objFolder = Nothing If MsgBox("Bitte wählen Sie einen Ordner für E-Mails aus." _ , vbCritical + vbOKCancel, "Ablage auswählen") = vbCancel Then SentFolder = True Exit Function End If End If '----------------------------------------------------------------- ' Der Posteingang eignet sich nicht als Ablage '----------------------------------------------------------------- If Not objFolder Is Nothing Then If objFolder = Outlook.Session.GetDefaultFolder(olFolderInbox) Then If MsgBox("Möchten Sie wirklich die gesendete E-Mail im Posteingang ablegen?" _ , vbExclamation + vbYesNo + vbDefaultButton2, "Ablage auswählen") = vbNo Then Set objFolder = Nothing End If End If End If Loop While objFolder Is Nothing '--------------------------------------------------------------------- ' Speicherort der E-Mail festlegen '--------------------------------------------------------------------- Set Item.SaveSentMessageFolder = objFolder '--------------------------------------------------------------------- ' Referenz auf Ordner löschen '--------------------------------------------------------------------- Set objFolder = Nothing End Function Der Aufruf erfolgt aus dem Modul DieseOutlookSitzung im Application_ItemSend-Ereignis: Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean) '===================================================================== ' Diese Prozedur wird unmittelbar vor dem Senden einer E-Mail aufge- ' rufen. Ist "Cancel" wahr, wird das Senden der E-Mail abgebrochen. ' (c) Peter Marchert - http://www.outlook-stuff.com ' 2008-11-19 Version 1.0.1 '===================================================================== '--------------------------------------------------------------------- ' Ordnerauswahl zum Ablegen der gesendeten Mail anzeigen '--------------------------------------------------------------------- Cancel = SentFolder(Item) '--------------------------------------------------------------------- ' Referenz auf E-Mail löschen '--------------------------------------------------------------------- Set Item = Nothing End Sub
Zuletzt aktualisiert am Mittwoch, 08. April 2009 um 07:44 Uhr
|

