Sub BijlagenOpslaanPrinten()
' Deze macro controleert een voorgedefinieerde subfolder in Outlook op Attachments
' en slaat die met PDF-extensie op in een voorgedefinieerde map.
' De opgeslagen bestanden kunnen bekeken worden in Internet Explorer.
' De opgeslagen bestanden worden afgedrukt op de standaardprinter.
' Afvangen van fouten
On Error GoTo SaveAttachmentsToFolder_err
' Variabelen declareren
Pad = "H:\Bijlagen\"
Set NS = GetNamespace("MAPI")
' Gebruik onderstaande routine om een folder te selecteren...
Set Folder = NS.PickFolder
''Set Folder = Application.GetNamespace("MAPI").PickFolder
' Of typ een naam voor het selecteren van een vaste folder...
Set Folder = NS.GetDefaultFolder(olFolderInbox) ' Met Early Binding
Set Folder = NS.GetDefaultFolder(9) ' Met Late Binding
''Set Folder = Inbox.Folders("Helpdesk") 'TYP HIER DE NAAM VAN DE Folder IN OUTLOOK.
i = 0
'==========================================================================================================================
'Hieronder de code zoals hij hoort te gaan.....
'==========================================================================================================================
' Controleer de Folder op Attachments en sluit af als er niets gevonden wordt.
If Folder.Items.Count = 0 Then
MsgBox "Er zijn geen berichten met Bijlagen in de folder " & Folder.Name & ".", vbInformation, "Niets gevonden"
Exit Sub
End If
' Controleer elk bericht op Attachments
For Each Item In Folder.Items
For Each atmt In Item.Attachments
' Controleer de filenaam van elke Attachment and sla die met "pdf" extensie op in voorgedefineerde map.
If Right(atmt.FileName, 3) = "pdf" Or Right(atmt.FileName, 3) = "img" Then
FileName = Pad & atmt.FileName
atmt.SaveAsFile FileName
i = i + 1
'document printen
'Shell """C:\Program Files\Adobe\Reader 9.0\Reader\acrord32.exe"" /h /p """ + FileName + """", vbHide
End If
Next atmt
Next Item
' Laat een totaal van berichten zien
If i > 0 Then
varResponse = MsgBox("Er zijn " & i & " bijlagen." & vbCrLf _
& "Ze zijn opgeslagen in " & Pad & "." & vbCrLf & vbCrLf _
& "Wil je ze nu bekijken?", vbQuestion + vbYesNo, "Klaar!")
' Open Windows Explorer om de opgeslagen bestanden te laten zien.
If varResponse = vbYes Then
Shell "Explorer.exe /e," & Pad, vbNormalFocus
End If
Else
MsgBox "Ik heb geen bijlagen gevonden in de mail(s).", vbInformation, "Finished!"
End If
'Tel het aantal mailtjes in de folder
iCount = Folder.Items.Count
varResponse = MsgBox("Wil je de " & iCount & " mailtjes nu wissen?", vbQuestion + vbYesNo, "Finished!")
' Alle mailtjes wissen.
If varResponse = vbYes Then
For i = Folder.Items.Count To 1 Step -1
Folder.Items.Item(i).Delete
numDeleted = iCount - Folder.Items.Count
If numDeleted Mod 100 = 0 Then
MsgBox ("Deleted " & numDeleted & " items of " & iCount & ".")
End If
Next
MsgBox ("Successfully deleted " & numDeleted & " items.")
End If
' Maak het geheugen leeg
SaveAttachmentsToFolder_exit:
Set atmt = Nothing
Set Item = Nothing
Set NS = Nothing
Exit Sub
' Foutverwerking
SaveAttachmentsToFolder_err:
MsgBox "Er is een fout opgetreden." _
& vbCrLf & "Rapporteer de volgende fout." _
& vbCrLf & "Macro Naam: BijlagenOpslaanPrinten()" _
& vbCrLf & "Error Number: " & Err.Number _
& vbCrLf & "Error Description: " & Err.Description _
, vbCritical, "Error!"
Resume SaveAttachmentsToFolder_exit
End Sub