Macro’s voegt u in Microsoft Outlook toe via de Visual Basic Editor.
- Open de Visual Basic Editor met ALT-F11.
- Vouw de Project1 boomstructuur aan de linkerkant uit, met daarin ‘Microsoft Outlook Objects’ en ‘ThisOutlookSession’. Dubbelklik op ‘ThisOutlookSession’.
- Kopieer onderstaande macro’s in de (lege) sectie aan de rechterkant en pas daar waar nodig de waarden aan.
- Sla het VBAProject.OTM op (Ctrl+S).
Welke VBA-code hebben we nu nodig om het e-mailbericht te controleren voor verzenden; op aanwezigheid van bijlage als benoemd in e-mailbericht, op de grootte van het e-mailbericht of op aanwezigheid van teveel To- en CC-ontvangers?
De inhoud van de VBAProject.OTM
Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
If Item.Class <> olMail Then Exit Sub
On Error GoTo handleError
‘Controleren op aanwezigheid van bijlage als benoemd in e-mailbericht
Dim Versturen_Mail As Variant
Dim strBody As String
Dim intIn As Long
Dim intAttachCount As Integer, intStandardAttachCount As Integer
intStandardAttachCount = 0 ‘Geef hier het aantal bestanden/plaatjes dat gebruikt wordt in een eventuele standaard handtekening onderaan het e-mailbericht.
Dim Mail_Inhoud As String
Dim Bijlage_Kenmerk As Variant
Dim Kenmerk_gevonden As Long
Dim Check_Reply As Integer
Check_Reply = 1 ‘Bijlage controleren ook voor Reply/Forward berichten? Zet dit op 1 als óók controle in Reply berichten.
If Not (Len(Item.ConversationIndex) > 44 And Check_Reply = 0) Then ’10 karakters = 5 bytes, nieuw bericht is 22 bytes, is 44 karakters.
For Each Bijlage_Kenmerk In Array(“attached”, “attachment”, “enclosed”, “bijgaande”, “bijlage”) ‘Vul dit aan met de bijlagekenmerken die u gebruikt.
Kenmerk_gevonden = InStr(1, LCase(Item.Subject & “,” & Item.Body), Bijlage_Kenmerk, vbTextCompare)
If Kenmerk_gevonden <> 0 Then Exit For
Next
intAttachCount = Item.Attachments.Count
If Kenmerk_gevonden <> 0 And intAttachCount <= intStandardAttachCount Then
Versturen_Mail = MsgBox(“In het e-mailbericht wordt verwezen naar een bijlage,” & vbCrLf & “maar er is geen bijlage aan dit e-mailbericht.” & vbCrLf & vbCrLf & “Wilt u dit e-mailbericht toch versturen?”, vbQuestion + vbYesNo + vbMsgBoxSetForeground, “Bijlage vergeten?”)
If Versturen_Mail = vbNo Then Cancel = True
End If
End If
‘ Controleren op de grootte van het e-mailbericht
Dim BijlageGrootte As Long
Const Max_BijlageGrootte As Long = 2621440 ‘ Geef hier de maximale grootte in bytes. Bijvoorbeeld 2,5Mb*1024*1024 is 2621440 bytes.
Dim Versturen_Bijlage As Variant
If Item.Attachments.Count Then
BijlageGrootte = Item.Size
If BijlageGrootte > Max_BijlageGrootte Then
Versturen_Bijlage = MsgBox(“De bijlage(n) zijn ” & Round(BijlageGrootte / 1024 / 1024, 0) & ” Mb groot!” & vbCrLf & vbCrLf & “Wilt u deze mail versturen?”, vbQuestion + vbYesNo + vbMsgBoxSetForeground, “Waarschuwing voor grootte e-mailbericht.”)
If Versturen_Bijlage = vbNo Then Cancel = True
End If
End If
‘Controleren op aanwezigheid van teveel To- en CC-ontvangers
Dim olkRecipient As Outlook.Recipient
Dim Aantal_To As Integer, Aantal_CC As Integer, Aantal_BCC As Integer
Dim Aantal_Ontvangers_To As Integer, Aantal_Ontvangers_CC As Integer
Aantal_Ontvangers_To = 3 ‘Geef hier het aantal “Aan” waarboven u gewaarschuwd wilt worden voor omzetting naar BCC-verzending.
Aantal_Ontvangers_CC = 3 ‘Geef hier het aantal “CC” waarboven u gewaarschuwd wilt worden voor omzetting naar BCC-verzending.
For Each olkRecipient In Item.Recipients
Select Case olkRecipient.Type
Case olTo
Aantal_To = Aantal_To + 1
Case olCC
Aantal_CC = Aantal_CC + 1
Case olBCC
Aantal_BCC = Aantal_BCC + 1
End Select
Next
If (Aantal_To > Aantal_Ontvangers_To) Or (Aantal_CC > Aantal_Ontvangers_CC) Then
Versturen_CC = MsgBox(“Let op. Er staan ” & Aantal_To + Aantal_CC & ” ontvangers in het e-mailbericht. ” & vbCrLf & vbCrLf & “Dit is meer dan het gewenste aantal van ” & Aantal_Ontvangers_To & ” ‘Aan’ of ” & Aantal_Ontvangers_CC & ” ‘Cc’.” & vbCrLf & “Advies is om ontvangers naar Bcc te verplaatsen.” & vbCrLf & vbCrLf & “Wilt u het e-mailbericht toch versturen?”, vbQuestion + vbYesNo + vbMsgBoxSetForeground, “Waarschuwing voor aantal ontvangers.”)
If Versturen_CC = vbNo Then Cancel = True
End If
Set olkRecipients = Nothing
‘Foutafhandeling
handleError:
If Err.Number <> 0 Then
MsgBox “Outlook Foutmelding: ” & Err.Description, vbExclamation, “Outlook foutmelding in VBA voor Bijlage vergeten / Bijlage grootte / BCC.”
End If
End Sub
Geef een reactie