VBA-code Notes omzetten naar Outlook

Robert Smidt

Gebruiker
Lid geworden
26 mei 2009
Berichten
949
Beste Forumleden,

Bij mijn werkgever zijn ze op termijn van plan om Notes om te zetten naar Outlook. Nu gebruik ik voor het verzenden een VBA-code met de optie een aantal bijlagen mee te sturen. Het is de bedoeling dat deze code omgezet gaat worden om voorgaande via Outlook te laten verzenden.

Ik werk met een Excel-bestand van waaruit ik maximaal 7 pdf-documenten kan laten verzenden. Hiervoor gebruik ik 7 cellen waar ik de naam van het te verzenden document in plaats. Iedere cel heeft z'n eigen naam:
0 = Naambrief,
1 = Vragenformulier
2 = VerslagGesprek
3 = Handleiding1
4 = Handleiding2
5 = Handleiding3
6 = Handleiding4

Naambrief, Vragenformulier en VerslagGesprek bevinden zich in de map: onder 'stPath1' en de handleidingen bevinden zich in de map: 'stPath'.

Naambrief en VerslagGesprek dienen altijd te worden verstuurd en t.a.v. de overige 5 documenten komt het in de praktijk zelden voor dat ik alle documenten (bijlagen) mee stuur. Het is daarom van belang dat wanneer één of meerdere van de 5 overige cellen leeg zijn, het systeem alleen de getoonde documenten meestuurt.

Tot mijn spijt kan ik het Excel bestand niet meesturen vanwege privacy gevoelige informatie. Wel kan ik de code mee sturen zoals dat in Notes prima functioneert.

Alvast heel hartelijk dank.
Robert


Code:
Const EMBED_ATTACHMENT As Long = 1454
Const vaCopyTo As Variant = "" 'copy mailen naar: "adres"

Sub voorbeeld()

Dim vaRecipients As Variant
Dim vaCopyTo As Variant
Dim noSession As Object
Dim noDatabase As Object
Dim noDocument As Object
Dim noEmbedObject As Object
Dim noAttachment As Object
Dim stAttachment As String
Dim stFileName As String

stsubject = "Voorbeeld"

vamsg = "Beste " & [Aanhefcontactpersoon] & " " & [Naamcontactpersoon] & "," & vbCrLf & vbCrLf & _
        [Afwezig].Value

'Bijlagen meesturen
Const stPath As String = "C:\GB\Handleidingen"
stPath1 = [Documentenpad] & "\"

stFileName0 = [Bezoekmap] & "\" & [Naambrief]  'Bestandsnaam brief
If [Vragenformulier] <> "" Then stFileName1 = [Bezoekmap] & "\" & [Vragenformulier]  'Bestandsnaam vragenformulier
stFileName2 = [Bezoekmap] & "\" & [VerslagGesprek] 'Bestandsnaam gespreksverslag

stFileName3 = stPath & "\" & [Handleiding1]     'Bestandsnaam Handleiding 1
stFileName4 = stPath & "\" & [Handleiding2]     'Bestandsnaam Handleiding 2
stFileName5 = stPath & "\" & [Handleiding3]     'Bestandsnaam Handleiding 3
stFileName6 = stPath & "\" & [Handleiding4]     'Bestandsnaam Handleiding 4

stAttachment0 = stPath1 & stFileName0 & ".pdf"  'Pad, bestandsnaam0 en format
stAttachment1 = stPath1 & stFileName1 & ".pdf"  'Pad, bestandsnaam1 en format
stAttachment2 = stPath1 & stFileName2 & ".pdf"  'Pad, bestandsnaam1 en format

stAttachment3 = stFileName3 & ".pdf"            'Pad, bestandsnaam2 en format
stAttachment4 = stFileName4 & ".pdf"            'Pad, bestandsnaam3 en format
stAttachment5 = stFileName5 & ".pdf"            'Pad, bestandsnaam4 en format
stAttachment6 = stFileName6 & ".pdf"            'Pad, bestandsnaam5 en format

'E-mailadres
vaRecipients = [Emailadres].Value

'Bepaal de Notes COM's Objecten.
Set noSession = CreateObject("Notes.NotesSession")
Set noDatabase = noSession.GETDATABASE("", "")
                  
'Als Notes niet open is, open dan het mail-gedeelte
If noDatabase.IsOpen = False Then noDatabase.OPENMAIL
      
'Genereer de e-mail en de bijlage(n).
Set noDocument = noDatabase.CreateDocument
Set noAttachment = noDocument.CreateRichTextItem("stAttachment0")
Set noAttachment = noDocument.CreateRichTextItem("stAttachment1")
Set noAttachment = noDocument.CreateRichTextItem("stAttachment2")
Set noAttachment = noDocument.CreateRichTextItem("stAttachment3")
Set noAttachment = noDocument.CreateRichTextItem("stAttachment4")
Set noAttachment = noDocument.CreateRichTextItem("stAttachment5")
Set noAttachment = noDocument.CreateRichTextItem("stAttachment6")

'Gereedzetten om te versturen
Set noEmbedObject = noAttachment.EmbedObject(EMBED_ATTACHMENT, "", stAttachment0)                                 'Brief
If [Vragenformulier] <> "" Then Set noEmbedObject = noAttachment.EmbedObject(EMBED_ATTACHMENT, "", stAttachment1) 'Vragenformulier
Set noEmbedObject = noAttachment.EmbedObject(EMBED_ATTACHMENT, "", stAttachment2)                                 'Gespreksverslag
If [Handleiding1] <> "" Then Set noEmbedObject = noAttachment.EmbedObject(EMBED_ATTACHMENT, "", stAttachment3)    'Handleiding 1
If [Handleiding2] <> "" Then Set noEmbedObject = noAttachment.EmbedObject(EMBED_ATTACHMENT, "", stAttachment4)    'Handleiding 2
If [Handleiding3] <> "" Then Set noEmbedObject = noAttachment.EmbedObject(EMBED_ATTACHMENT, "", stAttachment5)    'Handleiding 3
If [Handleiding4] <> "" Then Set noEmbedObject = noAttachment.EmbedObject(EMBED_ATTACHMENT, "", stAttachment6)    'Handleiding 4

With noDocument
    .Form = "Memo"
    .SendTo = vaRecipients
    .Subject = stsubject
    .Body = vamsg
    .SaveMessageOnSend = True
    .PostedDate = Now()
    .Send 0, vaRecipients
End With
                          
'Verwijder objecten.
Set noEmbedObject = Nothing
Set noAttachment0 = Nothing
Set noAttachment1 = Nothing
Set noAttachment2 = Nothing
Set noAttachment3 = Nothing
Set noAttachment4 = Nothing
Set noAttachment5 = Nothing
Set noAttachment6 = Nothing
Set noDocument = Nothing
Set noDatabase = Nothing
Set noSession = Nothing

MsgBox "De e-mail is correct verstuurd ", vbInformation
End Sub
 
Deze vraag heb ik nog nooit eerder gekregen, niet dat ik er niets voor over heb. Waar moet ik aan denken dat zo'n oplossing gaat kosten?
 
Terug
Bovenaan Onderaan