VBA Tools

Ostrzeżenie o braku załącznika

napisane przez Oskar w dniu wtorek, 19 Październik, 2010, w kategorii Porady - Outlook

Często problemem, zwłaszcza młodych ludzi ogarniętych zapałem jak i chęcią wykonania zadań w jak najkrótszym czasie, jest „roztargnienie” podczas wysyłania wiadomości z załącznikami. Często wysłane wiadomości nie zawierają załączników, choć powinny.

W dość prosty sposób można zabezpieczyć się przed tą dość krępującą sytuacją umieszczając poniższy kod w module klasy ThisOutlookSession.

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
'MVP OShon from VBATools.pl
Dim oMail As MailItem, kom
If Item.Class = 43 Then Set oMail = Item
 If InStr(1, LCase(oMail.To), LCase("Monika")) > 0 And _
 InStr(1, LCase(oMail.Subject), LCase("Raport")) > 0 And _
 oMail.Attachments.Count = 0 Then
 kom = MsgBox("Nie dołączono raportu." & vbCr & _
 "Czy chcesz przerwać nadanie tej wiadomości?", _
 vbYesNo + vbDefaultButton1 + vbQuestion, _
 "Ostrzeżenie o braku załącznika VBATools.pl")
 If kom = vbYes Then Cancel = True: Exit Sub
End If
Exit sub

W przypadku nadania wiadomości do adresata „Monika” z tematem zawierającym słowo „Raport” bez załączników otrzymujemy ekran z zapytaniem:

Rys 1. Ekran z zapytaniem o dalsze losy wiadomości bez załącznika.

Możemy rozwinąć pow. kod, aby nadanie wiadomości bez załącznika wymusiło wskazanie pliku, który będzie dołączony do wiadomości.

Należy dodać w developerze Outlooka kontrolkę Excela oraz umieścić poniższą procedurę zamiast poprzednio wymienionej.

Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
'MVP OShon from VBATools.pl
Dim oMail As MailItem, kom, x&
Dim xApp As New Excel.Application
Dim fileName As Variant

If Item.Class = 43 Then Set oMail = Item
 If InStr(1, LCase(oMail.To), LCase("Monika")) > 0 And _
 InStr(1, LCase(oMail.Subject), LCase("Raport")) > 0 And _
 oMail.Attachments.Count = 0 Then
 kom = MsgBox("Nie dołączono raportu." & vbCr & _
 "Czy chcesz podpiąć pliki do wiadomości?", _
 vbYesNoCancel + vbDefaultButton1 + vbQuestion, _
 "Ostrzeżenie o braku załącznika VBATools.pl")

 If kom = vbYes Then
 fileName = xApp.GetOpenFilename(FileFilter:="Wszystkie pliki (*.*),*.*", _
 Title:="Wybierz pliki załącznika", _
 MultiSelect:=True)
 If Not IsArray(fileName) Then
 MsgBox "Nie wybrano żadnego pliku.": Exit Sub
 Else
 For x = LBound(fileName) To UBound(fileName)
 oMail.Attachments.Add fileName(x)
 Next x
 oMail.Save
 End If
 ElseIf kom = vbCancel Then
 Cancel = True
 End If
End If
End Sub

Rys 2. Ekran z zapytaniem o pliki załącznika.

Tak, oznaczać będzie wyświetlenie okna wskazania plików (rys 3). Anulowanie komunikatu przerwie procedurę nadania wiadomości.

Rys 3. Podpinanie plików do wiadomości.

Z przytrzymaniem przycisku Ctrl można podpiąć dowolne pliki, jako załączniki wiadomości.

Rys 4. Wskazane wcześniej załączniki dołączone przed nadaniem wiadomości.

Ostatni rys w tym artykule przedstawia załączniki wiadomości zaraz przed wysłaniem.

(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