korespondencja seryjna z załącznikami
Korespondencja seryjna to często niedoceniane narzędzie w Ms Word. Jednak projektanci interfejsu Office’a 2007 słusznie poświęcili jej całą kartę wstążki. Przydaje się nie tylko do tworzenia podobnych dokumentów “z szablonu” ale również – na co wskazuje sama nazwa do seryjnego wysyłania maili.
Głównym mankamentem tego mechanizmu jest brak obsługi załączników. W internecie roi się od narzekań na ten problem a najczęściej cytowanym rozwiązaniem jest artykuł Douga Robbinsa ze strony Microsoft Most Valuable Professional http://word.mvps.org/faqs/mailmerge/MergeWithAttachments.htm, na którym opiera się poniższy post.
Tekst Douga zakłada, że czytelnik wie jak zrobić “zwykłą” korespondencję seryjną – ja nieco rozszerzam temat nie robiąc takiego założenia.
Mimo że Doug pisze, że jego skrypt zadziała na wersjach Office od 97 do 2007 (i ma rację), to pomija jeden szczegół. Przy korespondencji seryjnej Outlook prosi o potwierdzenie użytkownika przed wysłaniem każdego (z np. 1000) maili, Doug sugeruje instalację darmowego programu ”Express ClickYes” http://www.contextmagic.com/express-clickyes/ jednak według strony producenta do działania z Office 2007 potrzebujemy już wersji płatnej. To jednak nie powinien być problem, ponieważ niewygodnego pytania Outlook nie zada jeśli domyślnym typem wysyłanych wiadomości jest HTML.
Dużym plusem (przynajmniej dla mnie) tego rozwiązania jest to, że Outlook nie musi być domyślnym klientem poczty – wystarczy aby był zainstalowany. Skrypt Douga pozwala na dołączanie wielu załączników do każdej wiadomości, a nawet dołączanie różnych załączników dla różnych odbiorców.
Makro
Aby wszystko zadziałało, w Edytorze Visual Basica (alt+F11 lub karta Deweloper) należy ustawić odniesienie do Microsoft Outlook Object Library.
Edytor nie jest tłumaczony, więc klikamy na Tools>References w górnym menu i z długiej listy komponentów wybieramy Microsoft Outlook 12 Object Library (12 to numer właściwy wersji 2007).
Tu również trzeba będzie później dodać makro (w oknie This document konkretnego pliku (Projektu) lub szablonu)
Cztery pliki i wysyłka
1
Do korespondencji z załącznikami będziemy potrzebowali (jak zwykle) źródła danych (np. arkusza Excela) w którym umieszczone będą w jednej z kolumn wszystkie adresy e-mail odbiorców a każdy wiersz zawiera dane na temat tego właśnie odbiorcy, które możemy wstawić w tekst wysyłanego maila – w tym samym pliku możemy również podać ścieżkę do pliku załącznika, który chcemy wysłać.
Ponieważ błąd w tym ostatnim może nas kosztować w najgorszym przypadku wysyłanie maili (stu – tysiąca) bez załączników w najlepszym konieczność powtarzania procedury od początku warto sobie ułatwić życie i skopiować załączniki do głównego katalogu jednego z dysków – tak aby były widoczne od razu po kliknięciu na ikonę dysku w oknie Mój Komputer – wtedy dla dysku C i pliku Raport.pdf ścieżką będzie C:\Raport.pdf
2
Poza tym potrzebny nam będzie również dodatkowy dokument Worda (katalog korespondencji), w którym umieścimy dane o tym jaki załącznik (i do kogo) chcemy wysłać.
W katalogu wstawiamy jednowierszową tablekę z 2 lub więcej kolumn i wybieramy nasze – przygotowane już źródło danych.
W pierwszej kolumnie umieszczamy pole korespondencji seryjnej zawierające adres e-mail, w drugiej (i ew. kolejnych) pola zawierające ścieżki dostępu do załączników.
Powinno to wyglądać mniej więcej tak
|
<<AdresEmail>> |
<<Zalacznik1>> |
<<Zalacznik2>> |
W prostszych przypadkach – np. gdy wysyłamy takie same załączniki do wszystkich wystarczy wpisać ścieżkę właśnie w tej tablce – np. tak
|
<<AdresEmail>> |
C:\Raport.pdf |
Możemy również stosować kombinację obu metod i wysłać Raport do wszystkich jako pierwszy załącznik, ale drugi pobrać już ze źródła danych:
|
<<AdresEmail>> |
C:\Raport.pdf |
<<Zalacznik2>> |
3
Przygotowany w ten sposób dokument należy scalić korzystając z opcji Edytuj poszczególne dokumenty (Alt+Shift+N). Word stworzy automatycznie nowy plik w którym – o ile wszystko poszło dobrze zobaczymy naszą tabelkę (tyle wierszy ilu mamy odbiorców) wypełnioną danymi. Plik należy zapisać np. jako “katalog korespondencji” i zapamiętać miejsce – za moment będziemy musieli go otworzyć.
4
Następnie – w nowym dokumencie Worda przygotowujemy treść korespondencji seryjnej – wpisujemy wspólne części maili, a treść personalizowaną wstawiamy ze źródła danych. Ponownie scalamy korzystając z opcji Edytuj poszczególne dokumenty i do uzyskanego pliku dodajemy makro.
Kiedy wszystko jest już gotowe uruchamiamy nasze makro (Alt+F8), wskazujemy i otwieramy nasz “katalog korespondencji”, w kolejnym okienku wpisujemy jeszcze temat wspólny dla wszystkich wiadomości.
Za pierwszym razem (albo każdym kolejnym) warto zadbać o to, aby mieć możliwość przejrzenia maili przed wysłaniem – już w Outlooku – dla tego warto wyłączyć (wcześniej!) automatyczne wysyłanie wiadomości z domyślnego konta, lub po prostu rozłączyć się z Internetem i dopiero po upewnieniu się, że wszystko jest dokładnie tak jak chcemy, kliknąć w Outlooku “Wyślij”.



Dziękuję za wyjaśnienia – makro działa bajecznie, jest tylko jeden problem – po wysłaniu maila, program gubi formatowanie i wszystkie zmienione kolory, wstawione obiekry i pogrubienia tekstu znikają.
Jest na to jakaś rada?
Pozdrawiam,
jolken