VBA Tools

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

napisane przez Oskar w dniu środa, 18 Styczeń, 2012, w kategorii Porady - Outlook

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.

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łacznikach: </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.

Podziel się ze znajomymi:
  • Print
  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Blip
  • Grono
  • Gwar
  • Kciuk.pl
  • LinkedIn
  • MySpace
  • OSnews.pl
  • Śledzik
  • Spis.pl
  • Technorati
  • Twitter
  • Vala.pl
  • Wahacz.pl
  • Wykop

Wpisz swój komentarz:

Comment Spam Protection by WP-SpamFree