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.

Najkrócej:

Najbezpieczniejszy wzorzec tworzy wiadomość przez klasyczny Outlook i wyświetla ją użytkownikowi przed wysłaniem.

Ważne

Nowy Outlook dla Windows nie obsługuje COM/VBA. Ten przykład jest przeznaczony dla klasycznego Outlooka.

Gotowy kod

Skopiuj makro

VBA
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 Sub
Dostosowanie

Co zmienić w kodzie?

01

Zmień adres odbiorcy, temat i treść wiadomości.

02

Zostaw .Display podczas testów. Dopiero świadomie zamień na .Send, jeśli wiadomości mają być wysyłane automatycznie.

03

Do załącznika użyj .Attachments.Add z pełną ścieżką do istniejącego pliku.

Wyjaśnienie

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.

Uważaj na

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.