Controleren voor verzenden met Microsoft (VBA) code

Macro’s voegt u in Microsoft Outlook toe via de Visual Basic Editor.

  1. Open de Visual Basic Editor met ALT-F11.
  2. Vouw de Project1 boomstructuur aan de linkerkant uit, met daarin ‘Microsoft Outlook Objects’ en ‘ThisOutlookSession’. Dubbelklik op ‘ThisOutlookSession’.
  3. Kopieer onderstaande macro’s in de (lege) sectie aan de rechterkant en pas daar waar nodig de waarden aan.
  4. 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

Dit bericht is geplaatst in Artikelen met de tags , , . Bookmark de permalink.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.