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

Recently Active Members

Profile picture of vbatools
Profile picture of Karol Stilger
Profile picture of Joanna Subik
Profile picture of Anorak
Profile picture of marcinmachalowski
Profile picture of programistaaccess
Profile picture of piotrpawlik
Profile picture of Emil Wasilewski
Profile picture of kicekpicek
Profile picture of coldfusion
Profile picture of Gosia Borzęcka
Profile picture of lukaszch
Profile picture of itadministracja
Profile picture of farbenia
Profile picture of Łukasz Kałużny
Profile picture of kabzinski
Profile picture of rtynski
Profile picture of leszekbetlinski
Profile picture of Iv
Profile picture of Justyna Spychała