VBA — wysyłanie maila z Excela przez Outlook
Jak z Excela utworzyć wiadomość e-mail przez VBA i klasyczny Outlook. Gotowy kod z odbiorcą, tematem, treścią i bezpiecznym Display.
Najbezpieczniejszy wzorzec tworzy wiadomość przez klasyczny Outlook i wyświetla ją użytkownikowi przed wysłaniem.
Nowy Outlook dla Windows nie obsługuje COM/VBA. Ten przykład jest przeznaczony dla klasycznego Outlooka.
Skopiuj makro
Sub UtworzEmailOutlook()
Dim olApp As Object
Dim olMail As Object
Set olApp = CreateObject("Outlook.Application")
Set olMail = olApp.CreateItem(0)
With olMail
.To = "odbiorca@example.com"
.Subject = "Raport z Excela"
.Body = "Dzień dobry," & vbCrLf & vbCrLf & _
"W załączeniu przesyłam raport."
.Display
End With
Set olMail = Nothing
Set olApp = Nothing
End SubCo zmienić w kodzie?
Zmień adres odbiorcy, temat i treść wiadomości.
Zostaw .Display podczas testów. Dopiero świadomie zamień na .Send, jeśli wiadomości mają być wysyłane automatycznie.
Do załącznika użyj .Attachments.Add z pełną ścieżką do istniejącego pliku.
Jak działa ten kod?
CreateObject("Outlook.Application") uruchamia automatyzację obiektowego modelu klasycznego Outlooka.
CreateItem(0) tworzy nową wiadomość e-mail.
Late binding przez Object nie wymaga ręcznego zaznaczania biblioteki Outlook w References.
Najczęstsze błędy
Ten sposób dotyczy klasycznego Outlooka dla Windows. Nowy Outlook nie obsługuje automatyzacji COM/VBA.
Nie używaj .Send na etapie testów, jeśli odbiorcy i treść mogą być jeszcze błędne.
Automatyzacja może zależeć od polityk bezpieczeństwa i konfiguracji Office w organizacji.