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 .
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ę.
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.
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.
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.
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
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.
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.
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.
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.
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.
Krok 10: Przejrzyj wersję roboczą programu Outlook i dołączony skoroszyt.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.
Jeśli pakiet Office zablokuje makro, postępuj zgodnie ze wskazówkami bezpieczeństwa firmy Microsoft i polityką obowiązującą w Twojej organizacji.