Jak wysyłać e-maile za pomocą VBA w programie Excel: 11 kroków dla programu Outlook

W programie Excel VBA można przygotować wiadomość e-mail w programie Outlook z adresem odbiorcy, tematem, treścią i załącznikiem do skoroszytu. Ten 11-etapowy przewodnik korzysta z klasycznej wersji programu Outlook dla systemu Windows i otwiera wiadomość jako wersję roboczą, co umożliwia jej weryfikację przed wysłaniem. Firma Microsoft wymienia makra VBA i model obiektów programu Outlook jako nieobsługiwane w nowym programie Outlook, dlatego ten przykład oparty na modelu COM nie będzie działał z nowym programem Outlook ani z programem Outlook w przeglądarce.

Przed rozpoczęciem zapisz swoją pracę i upewnij się, że zainstalowano klasyczny Outlook ze skonfigurowanym kontem e-mail. Kod korzysta z późnego wiązania, więc nie musisz dodawać odwołania do biblioteki Outlooka dla konkretnej wersji.

Wyślij e-mail za pomocą Excel VBA w 11 krokach

1. Sprawdź, czy klasyczny Outlook jest dostępny

Otwórz wersję Outlooka na komputer i upewnij się, że jej skrzynka pocztowa może wysłać wiadomość. To makro wymaga klasycznego Outlooka dla systemu Windows; karta Outlook.com, Outlook w sieci Web i nowy Outlook nie udostępniają obiektu automatyzacji COM używanego w tym przypadku. Zobacz porównanie funkcji klasycznego i nowego Outlooka firmy Microsoft .

Skoroszyt programu Excel z otwartym w tle klasycznym oknem programu Outlook.
Krok 1: Użyj wersji pulpitu systemu Windows programu Excel i klasycznej wersji programu Outlook.

2. Zapisz skoroszyt jako plik z włączoną obsługą makr

W programie Excel wybierz Plik > Zapisz jako , a następnie wybierz Skoroszyt programu Excel z obsługą makr (*.xlsm) . Zwykły plik .xlsx nie może przechowywać kodu VBA. Zapisz skoroszyt w lokalizacji, do której masz dostęp i pamiętasz jego ścieżkę.

Okno dialogowe Zapisz jako w programie Excel z wybranym typem skoroszytu .xlsm obsługującym makra.
Krok 2: Podczas zapisywania wybierz format .xlsm z włączonymi makrami.

3. Otwórz Edytor Visual Basic

Po otwarciu skoroszytu w aplikacji Excel na komputerze naciśnij klawisze Alt+F11 . W Eksploratorze projektów znajdź projekt, którego nazwa odpowiada nazwie skoroszytu. Jeśli edytor jest ukryty, naciśnij klawisze Ctrl+R, aby wyświetlić Eksplorator projektów.

Edytor Visual Basic pokazujący projekt skoroszytu programu Excel i pusty panel kodu.
Krok 3: Projekt skoroszytu pojawia się w Edytorze Visual Basic.

4. Włóż moduł standardowy

W Edytorze Visual Basic wybierz projekt skoroszytu, wybierz Wstaw > Moduł i użyj nowego panelu kodu. Standardowy moduł to odpowiednie miejsce na makro uruchamiane na żądanie.

Menu Wstaw w Edytorze Visual Basic z wyróżnionym poleceniem Moduł.
Krok 4: Wstaw standardowy moduł dla makra.

5. Dodaj makro tworzenia szkicu

Wklej tę procedurę do modułu. Sprawdzi ona, czy skoroszyt został zapisany, zweryfikuje ścieżkę do załącznika, utworzy wiadomość w programie Outlook i wyświetli ją bez wysyłania.

Moduł VBA zawierający początek procedury CreateOutlookDraft.
Krok 5: Dodaj procedurę do nowego modułu.
Option Explicit

Sub CreateOutlookDraft()
    Dim olApp As Object
    Dim olMail As Object
    Dim attachmentPath As String

    If Len(ThisWorkbook.Path) = 0 Then
        MsgBox "Save the workbook before creating the email.", vbExclamation
        Exit Sub
    End If

    attachmentPath = ThisWorkbook.FullName
    If Len(Dir$(attachmentPath)) = 0 Then
        MsgBox "Workbook attachment not found: " & attachmentPath, vbExclamation
        Exit Sub
    End If

    On Error Resume Next
    Set olApp = GetObject(, "Outlook.Application")
    If olApp Is Nothing Then
        Set olApp = CreateObject("Outlook.Application")
    End If
    On Error GoTo 0

    If olApp Is Nothing Then
        MsgBox "Classic Outlook could not be opened.", vbExclamation
        Exit Sub
    End If

    Set olMail = olApp.CreateItem(0)
    With olMail
        .To = "recipient@example.com"
        .CC = ""
        .Subject = "Monthly report"
        .Body = "Hi," & vbCrLf & vbCrLf & _
                "Please review the attached monthly report." & _
                vbCrLf & vbCrLf & "Thanks,"
        .Attachments.Add attachmentPath
        .Display
    End With

    Set olMail = Nothing
    Set olApp = Nothing
End Sub

Argument liczbowy 0tworzy standardową przesyłkę pocztową. Dokumenty firmy Microsoft : Application.CreateItem , Attachments.Add i MailItem.Display .

6. Zastąp dane przykładowego e-maila

Zmień recipient@example.comadresata. .CCW razie potrzeby dodaj adresy, a następnie edytuj .Subjecttekst w .Body. Wartości tekstowe należy otaczać cudzysłowami i &łączyć za pomocą vbCrLf. W przykładzie użyto wiadomości tekstowej; nie wymaga ona formatowania HTML.

Edytor VBA z przykładowymi polami odbiorcy i tematu wyróżnionymi w makro wiadomości e-mail.
Krok 6: Zmień odbiorcę przykładowej wiadomości; edytuj temat i wiersze wiadomości, postępując w ten sam sposób.

7. Wybierz załącznik

Zgodnie z opisem, ThisWorkbook.FullNamedołącza zapisany skoroszyt z włączonymi makrami. Jeśli chcesz dołączyć oddzielny raport, zastąp to zadanie pełną ścieżką dostępu, na przykład "C:\Reports\MonthlyReport.xlsx". Przed uruchomieniem makra upewnij się, że plik jest obecny i dostępny. Ta Attachments.Addmetoda dołącza plik do wiadomości.

Kod VBA sprawdza ścieżkę załącznika raportu przed utworzeniem wiadomości w programie Outlook.
Krok 7: Sprawdź, czy ścieżka załącznika wskazuje na istniejący plik.

8. Zapisz makro

Naciśnij Ctrl+S w edytorze lub wróć do Excela i zapisz skoroszyt. Zachowaj format .xlsm; zapisanie w formacie .xlsx spowoduje usunięcie projektu VBA. Przechowuj plik w zaufanym miejscu i nie włączaj makr w skoroszycie z nieznanego źródła.

Okna edytorów Excel i VBA pokazujące zapisany skoroszyt .xlsm i kontrolkę Zapisz.
Krok 8: Zapisz skoroszyt, zachowując rozszerzenie .xlsm.

9. Uruchom procedurę

Kliknij w środku CreateOutlookDrafti naciśnij klawisz F5 lub użyj polecenia Uruchom w edytorze. Jeśli program Excel blokuje makro, postępuj zgodnie z zasadami obowiązującymi w Twojej organizacji. Firma Microsoft informuje, że pakiet Office domyślnie blokuje makra w plikach oznaczonych jako pochodzące z internetu; zapoznaj się z wytycznymi dotyczącymi bezpieczeństwa makr, zamiast wyłączać zabezpieczenia globalnie.

Menu Uruchom Edytora Visual Basic pokazujące polecenie F5 dla wybranej makry.
Krok 9: Uruchom makro w Edytorze Visual Basic.

10. Sprawdź wersję roboczą i wyślij ją samodzielnie

Outlook powinien otworzyć wiadomość z wypełnionym adresem, tematem, treścią i załącznikiem do skoroszytu. Sprawdź każdego odbiorcę i otwórz załącznik, jeśli jest to konieczne. Kliknij przycisk Wyślij w Outlooku dopiero po sprawdzeniu wersji roboczej. Kod celowo używa .Display, a nie .Send, aby zapobiec automatycznemu wysyłaniu wiadomości e-mail z błędami literowymi lub nieaktualnym plikiem.

Klasyczny projekt programu Outlook z odbiorcą, tematem i załącznikiem skoroszytu gotowy do przeglądu.
Krok 10: Przejrzyj wersję roboczą programu Outlook i dołączony skoroszyt.
Okno tworzenia wiadomości w programie Outlook z widocznym przyciskiem Wyślij i nadal otwartą wersją roboczą.
Wyślij dopiero po potwierdzeniu szczegółów wiadomości.

11. Rozwiąż typowe problemy

  • „Komponent ActiveX nie może utworzyć obiektu” lub Outlook jest niedostępny: sprawdź, czy klasyczna wersja Outlooka dla systemu Windows jest zainstalowana i skonfigurowana. Nowy Outlook i przeglądarka Outlook nie udostępniają wymaganego modelu obiektów Outlook.
  • Makro nie zostanie uruchomione: upewnij się, że skoroszyt ma format .xlsm i sprawdź komunikat o zabezpieczeniach w programie Excel. Nie włączaj wszystkich makr, aby ominąć ostrzeżenie; ufaj tylko plikom i wydawcom, których znasz.
  • Brakuje załącznika: najpierw zapisz skoroszyt lub popraw pełną ścieżkę do osobnego raportu. Sprawdź, czy plik nie znajduje się na niedostępnym dysku.

Ten przepływ pracy dotyczy wiadomości, którą przeglądasz i wysyłasz w klasycznym programie Outlook. W przypadku powtarzających się lub nienadzorowanych wiadomości e-mail w firmie, skorzystaj z usługi automatyzacji zatwierdzonej przez organizację i osobno weryfikuj odbiorców, załączniki i uprawnienia.

Ostrzeżenie bezpieczeństwa programu Excel wyjaśniające, że makra dla pliku zostały wyłączone.
Jeśli pakiet Office zablokuje makro, postępuj zgodnie ze wskazówkami bezpieczeństwa firmy Microsoft i polityką obowiązującą w Twojej organizacji.

Zostaw komentarz

Jak przenieść obraz w programie Microsoft Word

Jak przenieść obraz w programie Microsoft Word

Dowiedz się, jak przeciągać obraz w programie Word, wybierać opcje zawijania tekstu, zachowywać go w akapicie lub mocować na stronie oraz rozwiązywać problemy z obrazami, których nie można przenieść.

Jak wstawić pole wyboru w programie Excel: dwie proste metody

Jak wstawić pole wyboru w programie Excel: dwie proste metody

Dowiedz się, jak wstawić pole wyboru w programie Excel za pomocą narzędzia w komórce, zliczyć zaznaczone elementy za pomocą formuł lub dodać powiązany formant formularza w starszych wersjach programu na komputery stacjonarne.

Jak automatycznie wypełniać litery w programie Excel: od A do Z i dalej

Jak automatycznie wypełniać litery w programie Excel: od A do Z i dalej

Generuj litery od A do Z, małe litery lub etykiety powyżej Z w programie Excel za pomocą formuły z uchwytem wypełniania, SEKWENCJI lub wielokrotnego użytku listy niestandardowej.

Jak przekreślić tekst w programie Excel: skróty i metody krok po kroku

Jak przekreślić tekst w programie Excel: skróty i metody krok po kroku

Dowiedz się, jak przekreślać wiersze w programie Excel w systemie Windows, na komputerze Mac i w przeglądarce, formatować część komórki i usuwać wiersze bez usuwania ich wartości.

Czym jest Microsoft Access? Jak działają jego narzędzia bazodanowe

Czym jest Microsoft Access? Jak działają jego narzędzia bazodanowe

Microsoft Access to aplikacja bazy danych systemu Windows do przechowywania powiązanych rekordów, tworzenia zapytań, tworzenia formularzy wprowadzania danych i generowania raportów. Dowiedz się, jak działa i kiedy się sprawdza.

Importowanie i eksportowanie danych z programu Office Outlook 2010: przenoszenie danych za pomocą pliku PST

Importowanie i eksportowanie danych z programu Office Outlook 2010: przenoszenie danych za pomocą pliku PST

Dowiedz się, jak zaimportować plik PST do programu Outlook 2010 lub wyeksportować pocztę, kontakty, kalendarz i zadania. Postępuj zgodnie z odpowiednimi menu i unikaj pominiętych folderów lub duplikatów.

Zmiana wysokości i szerokości linii siatki w programie Word 2010

Zmiana wysokości i szerokości linii siatki w programie Word 2010

Dowiedz się, jak dostosować wysokość i szerokość linii siatki w programie Word 2010, zmienić widoczną częstotliwość linii oraz ustawić odstępy między liniami siatki w pionie i w poziomie.

Jak wstawić aktywną stronę internetową do slajdu programu PowerPoint

Jak wstawić aktywną stronę internetową do slajdu programu PowerPoint

Za pomocą dodatku LiveWeb możesz umieścić witrynę internetową na slajdzie programu PowerPoint, ustawić jej rozmiar i sposób odświeżania oraz sprawdzić zgodność przed prezentacją.

Odzyskiwanie hasła PST programu Outlook za pomocą jądra Nucleus

Odzyskiwanie hasła PST programu Outlook za pomocą jądra Nucleus

Odzyskaj zapomniane hasło PST programu Outlook, korzystając z bieżących instrukcji Kernela, obejmujących m.in. identyfikację właściwego pliku, wykonanie kopii zapasowej i sprawdzenie ograniczeń narzędzia.

Dodaj święta narodowe do kalendarza Outlook

Dodaj święta narodowe do kalendarza Outlook

Dodaj święta krajowe w nowym Outlooku, Outlooku w przeglądarce lub klasycznej wersji Outlooka. Dowiedz się, jak unikać duplikatów wydarzeń i sprawdzać, czy nie brakuje dat z lat 2026–2027.