Visual Basic for Applications lub VBA to potężny język programowania, a jednocześnie łatwy i pozwala w pełni zautomatyzować program Microsoft Excel. Jedną z takich automatyzacji jest używanie kodów VBA do integracji innych aplikacji firmy Microsoft, takich jak Outlook, PowerPoint i Word, oraz zwiększania produktywności.
Wysyłanie wiadomości e-mail za pomocą języka VBA w programie Excel to jedna z takich integracji, która ułatwia życie, automatyzując zadania związane z wysyłaniem arkuszy kalkulacyjnych lub raportów. Ten samouczek przeprowadzi Cię przez etapy wysyłania wiadomości e-mail za pomocą języka VBA z programu Excel w łatwych do wykonania krokach.

Aktywacja biblioteki obiektów programu Microsoft Outlook
Musisz ustawić odwołanie do obiektu wysyłania wiadomości e-mail w programie Outlook, ponieważ jest to obiekt zewnętrzny dla programu Excel VBA . Wykonaj następujące kroki:
- Zapisz istniejący plik programu Excel jako plik obsługujący makra, klikając Plik > Zapisz jako > wybierz lokalizację i zmień opcję Zapisz jako typ .
- Naciśnij Alt + F11 , aby wywołać edytor kodu VBA i kliknij Narzędzia znajdujące się na górnym pasku menu.

- Stamtąd wybierz Odwołania , a następnie przewiń listę Dostępne odniesienia , aby znaleźć Bibliotekę obiektów programu Microsoft Outlook 16.0 .
- Wybierz obiekt i kliknij OK , aby wyjść z listy Dostępne odniesienia .
Wysyłanie wiadomości e-mail za pomocą języka VBA: pisz kody i wykonuj
Po włączeniu obiektu programu Outlook w programie Excel VBA wykonaj następujące kroki, aby napisać makro programu Excel i wykonać je:
- Upewnij się, że jesteś w interfejsie edytora kodu VBA. Teraz poszukaj karty Wstaw w górnym menu programu Excel VBA.
- Kliknij Wstaw , a następnie wybierz Moduł , aby wstawić moduł, w którym będziesz mógł pisać kody VBA.
- Teraz skopiuj i wklej następujący skrypt VBA do nowo utworzonego modułu.
Sub send_email_with_VBA() Dim EmailApp As Outlook.Application Dim Source As String Set EmailApp = New Outlook.Application Dim EmailItem As Outlook.MailItem Set EmailItem = EmailApp.CreateItem(olMailItem) EmailItem.To = "[email protected]" EmailItem.CC = "[email protected]" EmailItem.BCC = "[email protected]" EmailItem.Subject = "Status wysyłki zamówienia klienta" EmailItem.HTMLBody = "Cześć, zespół," & vbNewLine & vbNewLine & "PFA arkusz kalkulacyjny dla dzisiejszego zamówienia status" & _ vbNewLine & vbNewLine & _ "Pozdrowienia," & vbNewLine & _ "Tamal Das" Source = ThisWorkbook.FullName EmailItem.Attachments.Add Source EmailItem.Send End Sub
Powyższy kod wyśle wiadomość e-mail przy użyciu konta Outlook na adresy e-mail wymienione w kodzie.
Treść wiadomości e-mail jest również dostępna w wierszu kodu EmailItem.HTMLBody . Ponadto Excel VBA automatycznie dołączy skoroszyt źródłowy do wiadomości e-mail jako załącznik.
Możesz wprowadzić następujące zmiany, aby spersonalizować adresy i treść wiadomości e-mail:
- Zastąp wszystkie adresy e-mail w cytacie własnymi kontaktami programu Outlook .
- Dostosuj tekst EmailItem.Subject w cytacie według własnego uznania.
- W kodzie EmailItem.HTMLBody możesz zastąpić wszystkie teksty w cudzysłowie własną treścią.
- Teraz uruchom skrypt VBA, naciskając klawisz F5 .

Aby pomyślnie wysyłać wiadomości e-mail za pomocą VBA, musisz skonfigurować konto Gmail lub konto Outlook w samodzielnej aplikacji Outlook pakietu Microsoft Office. Program Outlook oparty na przeglądarce internetowej nie będzie działał z tym kodem VBA.
Wniosek
Teraz, gdy wykonałeś powyższe kroki dotyczące wysyłania wiadomości e-mail za pomocą języka VBA, automatyzacja przyziemnych zadań w programie Excel powinna być łatwiejsza. Na przykład pozwól, aby plik arkusza kalkulacyjnego automatycznie wysyłał do Ciebie wiadomość e-mail, gdy współpracownicy zaktualizują arkusz. Wysyłaj także automatyczne wiadomości e-mail do klientów, gdy aktualizujesz kolumnę stanu zamówienia w programie Excel.
Jeśli chcesz więcej automatyzacji Excela przy użyciu VBA, użyj kodowania znaczników czasu VBA , aby prowadzić dziennik zmian w arkuszu kalkulacyjnym.