Chcę wysłać korespondencję seryjną z plikiem do około 400 odbiorców.Czy jest możliwe dołączenie pliku PDF do tej korespondencji seryjnej?
Wiem, że temat trochę stary ale postanowiłem napisać jak to zrobić. W końcu po to jest forum żeby odpowiedzi były dostępne na długo po napisaniu posta.
KORESPONDENCJA SERYJNA Z ZAŁĄCZNIKIEM
- Otwórz excela.
- Zapisz excela jako Arkusz obsługujący obsługę makr
- Na górze Arkusza wejdź w zakładkę Deweloper (jeżeli nie masz tej funkcji to wejdz w Plik/Opcje/Dostosowanie wstążki i zaznacz opcję deweloper po prawej stronie), a następnie w ikonę Visual Basic.
- Po lewej stronie pod "drzewkiem z ikonami" kliknij prawy przucisk myszy i wstaw Moduł
- Do modułu wklej poniższy kod:
Sub Send_Files()
'Working in 2000-2010
Dim OutApp As Object
Dim OutMail As Object
Dim sh As Worksheet
Dim cell As Range, FileCell As Range, rng As Range
With Application
.EnableEvents = False
.ScreenUpdating = False
End With
Set sh = Sheets("Arkusz1")
Set OutApp = CreateObject("Outlook.Application")
For Each cell In sh.Columns("B").Cells.SpecialCells(xlCellTypeConstants)
'Enter the file names in the C:Z column in each row
Set rng = sh.Cells(cell.Row, 1).Range("C1:Z1")
If cell.Value Like "?*@?*.?*" And _
Application.WorksheetFunction.CountA(rng) > 0 Then
Set OutMail = OutApp.CreateItemFromTemplate("C:\Users\Desktop\Twoj szablon.oft") 'zmodyfikuj sciez.ke;
With OutMail
.To = cell.Value
.Subject = "Temat wiadomosci"
.HTMLBody = "" & cell.Offset(0, -1).Value & vbNewLine & .HTMLBody
For Each FileCell In rng.SpecialCells(xlCellTypeConstants)
If Trim(FileCell) <> "" Then
If Dir(FileCell.Value) <> "" Then
.Attachments.Add FileCell.Value
End If
End If
Next FileCell
.Send 'Or use Display
End With
Set OutMail = Nothing
End If
Next cell
Set OutApp = Nothing
With Application
.EnableEvents = True
.ScreenUpdating = True
End With
End Sub
6. Otwórz Outlooka, stwórz nową wiadomość, która będzie wysyłana do wszystkich odbiorców. Wiadomość powinna być uniwersalna. Będzie różniła się tylko załącznikami. Zapisz tą wiadomość np na pulpicie w formacie szablonu (.oft)
7. Wróć do excela/deweloper/visual basic/module1 i Odnajdź linijkę
Set OutMail = OutApp.CreateItemFromTemplate("C:\Users\Desktop\Twoj szablon.oft") 'zmodyfikuj sciezke. Wstaw adres Twojego szablonu.
Następnie znajdź linijkę
.Subject = "Temat wiadomosci"
I wpisz temat swojej wiadomości.
Zapisz (ctrl + s).
W kolumnie A nie wpisuj nic. W kolumnie b wpisz adres (w jednej komorce mogą być też np 2 adresy) e-mail, a w kolumnach C-Z wpisz ścieżkę do Twoich załączników np. C:\Users\Desktop\Plik do wysylki.pdf
8. Kliknij alt + F8, naciśnij enter i zobacz czy maile się wysłały.
Za pomocą tego makra można wysłać nawet kilkaset wiadomości. Ja osobiście wysyłałem 450 naraz.
Pozdrawiam,
Su