VBATools

Tworzenie email z informacją o brakujących załącznikach w treści wiadomości

by on Jan.18, 2012, under Outlook, Porady

Poniżej znajduje się rozwiązanie, dzięki któremu można utworzyć wiadomość podając jako parametr nazwy plików.
Pliki te będą załączone do wiadomości. W przypadku kiedy załącznik nie będzie mógł być dodany to informacja o tym będzie załączona w treści wiadomości.

OL_Braki_w_zalacznikach

To rozwiązanie jest bardzo wygodne, kiedy jesteśmy zobligowani do tworzenia raportów, których treść jest zawarta w załącznikach, wcześniej osadzona w zdefiniowanych katalogach

Sub przygotuj()
Dim zalacznik$
 zalacznik = "C:\Temp\XL_VBA_BeforeSave.png," & _
 "C:\Temp\XL_VBA_Pogrubienie_tekstu_w_komorkach.txt," & _
 "C:\Temp\Ala_ma_kota.txt," & _
 "C:\Temp\test2.txt"
 If Tworzenie_maila(zalacznik) = False Then _
 MsgBox "Brak możliwości wygenerowania wiadomości", vbExclamation, "VBATools.pl"
End Sub

Function Tworzenie_maila(Optional zalaczniki As String) As Boolean
On Error GoTo Blad
 Dim olMail As MailItem, x&, pliki$, att As Variant
 Set olMail = Application.CreateItem(olMailItem)
 If Len(zalaczniki) > 0 Then att = Split(zalaczniki, ",")
 With olMail
 .To = "adres@domena.pl"
 .Subject = "Raporty"
 If IsArray(att) Then
  For x = LBound(att) To UBound(att)
   If FileExists(att(x)) = True Then _
   .Attachments.Add att(x) Else _
   pliki = pliki & att(x) & "<br>"
  Next x
 End If
 .HTMLBody = "<b>Braki w załącznikach: </b><br>" & pliki
 .Display 0
 Tworzenie_maila = True
 End With
 Set olMail = Nothing
Exit Function
Blad:
Tworzenie_maila = False
End Function

Public Function FileExists(ByVal FilePath As String) As Boolean
On Error GoTo Blad
 FileExists = Len(Dir(FilePath, vbDirectory Or vbHidden Or vbSystem)) > 0
Exit Function
Blad:
FileExists = False
End Function

Parametry wejściowe mogą być dowolnie określone (np zmodyfikowana nazwa plików o dodanie aktualnego okresu lub przeszłego). Jeśli mamy potrzebę adresowania wiadomości lub tworzenia odrębnych nazw tematu możemy parametr dla tych opcji wyciągnąć, aby podawać je w procedurze.

 

(c) Shon Oskar – www.VBATools.pl

Wszelkie prawa zastrzeżone. Żadna część ani całość tego artykułu nie może być powielana ani publikowana bez zgody autora.
:, , , ,

Leave a Reply