"Verzenden en klasseren" of "send and file" bestaat niet in microsoft outlook maar in vba hebben we hiervoor toch een oplossing gevonden

Een van de grootste problemen met microsoft outlook is dat bij het verzenden van mails al deze mails in de map verzenden komen te staan. Vooral voor wie folders gebruikt om zijn dossiers te klasseren of wie heel veel mail verstuurd die hij daarna ook niet meer wenst bij te houden is dit enorm vervelend. Ga je verzonden maar eens opkuisen nadien...

Met onderstaande code echter wordt er na het versturen van elk mailtje onderstaand scherm getoond waarmee je kan bepalen in welke folder je verstuurd mailtje moet bewaard worden, of je kan het ook in de folder met verwijderde mails dumpen als je het niet meer nodig hebt.

Map selecteren

De code installeren is vrij eenvoudig. Klik in Outlook op ALT-F11 om je visual basic editor te openen. Kopieer onderstaande code (beide functie's) en plak ze in ThisOutlookSession (zie ook onderstaande printscreen)

Microsoft Visual Basic Editor

Sluit de vb editor af en bewaar de wijzigingen. Ga daarna naar de macro beveiliging en zet deze op laag. Omdat dit geen gesigneerde code is, kan die enkel bij laag uitgevoerd worden, of ook bij gemiddeld, maar dan wordt bij het opstarten van outlook telkens gevraagd of je deze macro wel wil uitvoeren.

Beveiligingsniveau

Sluit Outlook af en start opnieuw op. Maak een testmailtje en verstuur het naar jezelf. Vanaf nu heb ook jij (terug) en send en file...

Let op deze code werd enkel getest met Microsoft Outlook 2003 !!!

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
On Error GoTo errorHandler

Dim objNS As NameSpace
Dim objFolder As MAPIFolder
Set objNS = Application.GetNamespace("MAPI")
Set objFolder = objNS.PickFolder
If TypeName(objFolder) <> "Nothing" And IsInDefaultStore(objFolder) Then
Set Item.SaveSentMessageFolder = objFolder
End If
Set objFolder = Nothing
Set objNS = Nothing
Exit Sub

errorHandler:
Exit Sub
End Sub

Public Function IsInDefaultStore(objOL As Object) As Boolean
Dim objApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim objInbox As Outlook.MAPIFolder
On Error Resume Next
Set objApp = CreateObject("Outlook.Application")
Set objNS = objApp.GetNamespace("MAPI")
Set objInbox = objNS.GetDefaultFolder(olFolderInbox)
Select Case objOL.Class
Case olFolder
If objOL.StoreID = objInbox.StoreID Then
IsInDefaultStore = True
End If
Case olAppointment, olContact, olDistributionList, olJournal, olMail, olNote, olPost, olTask
If objOL.Parent.StoreID = objInbox.StoreID Then
IsInDefaultStore = True
End If
Case Else
MsgBox "This function isn't designed to work " & "with " & TypeName(objOL) & " items and will return False.", ,"IsInDefaultStore"
End Select
Set objApp = Nothing
Set objNS = Nothing
Set objInbox = Nothing
End Function