Jak wysyłać wiadomości e-mail z arkusza kalkulacyjnego Excel za pomocą skryptów VBA

Jak wysyłać wiadomości e-mail z arkusza kalkulacyjnego Excel za pomocą skryptów VBA

Aby wysyłać e-maile z Microsoft Excel, wystarczy kilka prostych skryptów. Dodaj tę funkcję do swoich arkuszy kalkulacyjnych, a naprawdę możesz zwiększyć swoje możliwości w programie Excel.





Omówiliśmy wiele świetnych makr programu Excel, które mogą wykonywać te same czynności, co skrypty VBA, ale bez konieczności posiadania wiedzy programistycznej. Ale jest wiele zaawansowanych rzeczy, które możesz zrobić tylko za pomocą VBA, takich jak tworzenie raportu w arkuszu kalkulacyjnym ze wszystkimi informacjami o komputerze.





Wolisz obejrzeć ten samouczek jako film? Jesteśmy z Tobą!





Dlaczego warto wysyłać wiadomości e-mail z programu Excel?

Istnieje wiele powodów, dla których możesz chcieć wysłać wiadomość e-mail z poziomu programu Microsoft Excel.

Być może masz pracowników, którzy co tydzień aktualizują dokumenty lub arkusze kalkulacyjne, i chcesz otrzymywać powiadomienia e-mail o zakończeniu tych aktualizacji. Możesz też mieć arkusz kalkulacyjny z kontaktami i chcesz wysłać jedną wiadomość e-mail do wszystkich naraz.



Prawdopodobnie myślisz, że tworzenie skryptów emisji e-mail z programu Excel będzie skomplikowane. Wcale tak nie jest.

Technika opisana w tym artykule wykorzysta funkcję, która jest dostępna w Excel VBA od dłuższego czasu, Współpracujące obiekty danych (CDO).





CDO to składnik przesyłania wiadomości używany w systemie Windows od bardzo wczesnych generacji systemu operacyjnego. Kiedyś nazywał się CDONTS, a następnie wraz z pojawieniem się Windows 2000 i XP został zastąpiony przez „CDO dla Windows 2000”. Ten składnik jest już zawarty w instalacji VBA w programie Microsoft Word lub Excel i jest gotowy do użycia.

Korzystanie z komponentu sprawia, że ​​wysyłanie wiadomości e-mail z produktów Windows z VBA jest niezwykle łatwe. W tym przykładzie użyjesz składnika CDO w programie Excel, aby wysłać wiadomość e-mail, która dostarczy wyniki z określonej komórki programu Excel.





Krok 1: Utwórz makro VBA

Pierwszym krokiem jest przejście do zakładki Excel Developer.

W zakładce Deweloper kliknij Wstawić w polu Kontrolki, a następnie wybierz przycisk polecenia.

Narysuj go do arkusza, a następnie utwórz dla niego nowe makro, klikając Makra na wstążce Deweloper.

Po kliknięciu Tworzyć przycisk, otworzy się edytor VBA.

Dodaj odwołanie do biblioteki CDO, przechodząc do Narzędzia > Bibliografia w edytorze.

Przewiń listę, aż znajdziesz Microsoft CDO dla biblioteki Windows 2000 . Zaznacz pole wyboru i kliknij ok .

Po kliknięciu ok , zanotuj nazwę funkcji, do której wklejasz skrypt. Będziesz go później potrzebować.

Krok 2: Skonfiguruj pola CDO „Od” i „Do”

Aby to zrobić, musisz najpierw utworzyć obiekty poczty i skonfigurować wszystkie pola, które są niezbędne do wysłania wiadomości e-mail.

Należy pamiętać, że chociaż wiele pól jest opcjonalnych, Z oraz Do Wypełnienie pól jest wymagane.

jaka jest najtańsza aplikacja do dostarczania jedzenia
Dim CDO_Mail As Object
Dim CDO_Config As Object
Dim SMTP_Config As Variant
Dim strSubject As String
Dim strFrom As String
Dim strTo As String
Dim strCc As String
Dim strBcc As String
Dim strBody As String
strSubject = 'Results from Excel Spreadsheet'
strFrom = 'rdube02@gmail.com'
strTo = 'rdube02@gmail.com'
strCc = ''
strBcc = ''
strBody = 'The total results for this quarter are: ' & Str(Sheet1.Cells(2, 1))

Fajną rzeczą w tym jest to, że możesz utworzyć dowolny ciąg, który chcesz dostosować do pełnej wiadomości e-mail i przypisać ją do strBody zmienny.

Poskładaj elementy wiadomości, używając & ciąg, aby wstawić dane z dowolnego arkusza Microsoft Excel bezpośrednio do wiadomości e-mail, tak jak pokazano powyżej.

Krok 3: Skonfiguruj CDO do korzystania z zewnętrznego SMTP

W następnej sekcji kodu skonfigurujesz CDO tak, aby używał dowolnego zewnętrznego serwera SMTP do wysyłania wiadomości e-mail.

Ten przykład to konfiguracja bez SSL za pośrednictwem Gmaila. CDO obsługuje SSL, ale to wykracza poza zakres tego artykułu. Jeśli potrzebujesz użyć SSL, to zaawansowany kod w Github może pomóc.

Set CDO_Mail = CreateObject('CDO.Message')
On Error GoTo Error_Handling
Set CDO_Config = CreateObject('CDO.Configuration')
CDO_Config.Load -1
Set SMTP_Config = CDO_Config.Fields
With SMTP_Config
.Item('http://schemas.microsoft.com/cdo/configuration/sendusing') = 2
.Item('http://schemas.microsoft.com/cdo/configuration/smtpserver') = 'smtp.gmail.com'
.Item('http://schemas.microsoft.com/cdo/configuration/smtpauthenticate') = 1
.Item('http://schemas.microsoft.com/cdo/configuration/sendusername') = 'email@website.com'
.Item('http://schemas.microsoft.com/cdo/configuration/sendpassword') = 'password'
.Item('http://schemas.microsoft.com/cdo/configuration/smtpserverport') = 25
.Item('http://schemas.microsoft.com/cdo/configuration/smtpusessl') = True
.Update
End With
With CDO_Mail
Set .Configuration = CDO_Config
End With

Krok 4: Zakończ konfigurację CDO

Teraz, po skonfigurowaniu połączenia z serwerem SMTP do wysyłania wiadomości e-mail, wystarczy wypełnić odpowiednie pola dla CDO_Mail obiekt i wydaj Wysłać Komenda.

Oto jak to robisz:

CDO_Mail.Subject = strSubject
CDO_Mail.From = strFrom
CDO_Mail.To = strTo
CDO_Mail.TextBody = strBody
CDO_Mail.CC = strCc
CDO_Mail.BCC = strBcc
CDO_Mail.Send
Error_Handling:
If Err.Description '' Then MsgBox Err.Description

Nie będzie żadnych wyskakujących okienek ani komunikatów ostrzeżeń dotyczących bezpieczeństwa, co może się zdarzyć, gdy użyjesz obiektu poczty programu Outlook.

CDO po prostu zestawia wiadomość e-mail i wykorzystuje szczegóły połączenia z serwerem SMTP, aby wysłać wiadomość. To najprostszy sposób na włączenie poczty e-mail do skryptów VBA Microsoft Word lub Excel.

Aby połączyć przycisk polecenia z tym skryptem, przejdź do edytora kodu i kliknij Arkusz1 aby wyświetlić kod VBA dla tego arkusza.

Wpisz nazwę funkcji, do której wkleiłeś powyższy skrypt.

jak skopiować muzykę z iPoda na komputer?

Oto jak wyglądała wiadomość, którą otrzymałem w skrzynce odbiorczej:

Notatka : Jeśli pojawi się błąd, który brzmi Transport nie mógł połączyć się z serwerem , upewnij się, że wpisałeś prawidłową nazwę użytkownika, hasło, serwer SMTP i numer portu w wierszach kodu wymienionych poniżej Z SMTP_Config .

Idź dalej i zautomatyzuj cały proces

Dobrze jest móc wysyłać wiadomości e-mail z programu Excel za naciśnięciem jednego przycisku. Możesz jednak chcieć regularnie korzystać z tej funkcji, w takim przypadku warto zautomatyzować proces .

Aby to zrobić, musisz wprowadzić zmianę w makrze. Przejdź do Edytora Visual Basic i skopiuj i wklej cały kod, który ułożyliśmy.

Następnie wybierz Ten zeszyt od Projekt hierarchia.

Z dwóch rozwijanych pól u góry okna kodu wybierz zeszyt ćwiczeń i wybierz otwarty z listy rozwijanej Metody.

Wklej powyższy skrypt e-mail do Prywatny skoroszyt podrzędny_Open() .

Spowoduje to uruchomienie makro za każdym razem, gdy otworzysz plik Excel.

Następnie otwórz się Harmonogram zadań .

Użyjesz tego narzędzia, aby poprosić system Windows o automatyczne otwieranie arkusza kalkulacyjnego w regularnych odstępach czasu, w którym to momencie zostanie zainicjowane makro, wysyłając wiadomość e-mail.

Wybierz Utwórz zadanie podstawowe... od Akcja menu i przejdź przez kreatora, aż dojdziesz do Akcja ekran.

Wybierz Uruchom program i kliknij Następny .

Użyj Przeglądaj przycisk, aby znaleźć lokalizację programu Microsoft Excel na komputerze lub skopiuj i wklej ścieżkę do Program/skrypt pole.

Następnie wprowadź ścieżkę do dokumentu Microsoft Excel w Dodaj argumenty pole.

Ukończ kreatora, a Twój harmonogram będzie na miejscu.

Warto przeprowadzić test, zaplanuj akcję na kilka minut w przyszłości, a następnie zmodyfikuj zadanie, gdy tylko upewnisz się, że działa.

Notatka : Być może trzeba będzie dostosować ustawienia Centrum zaufania, aby upewnić się, że makro działa poprawnie.

Aby to zrobić, otwórz arkusz kalkulacyjny i przejdź do Plik > Opcje > Centrum zaufania .

Stąd kliknij Ustawienia Centrum zaufania , a na następnym ekranie ustaw pokrętło radia na Nigdy nie pokazuj informacji o zablokowanych treściach .

Niech Microsoft Excel pracuje dla Ciebie

Microsoft Excel to niezwykle potężne narzędzie, ale nauka, jak najlepiej z niego korzystać, może być trochę onieśmielająca. Jeśli chcesz naprawdę opanować oprogramowanie, musisz być wygodne z VBA , a to niełatwe zadanie.

jak śledzić kogoś na mapach google?

Jednak wyniki mówią same za siebie. Mając niewielkie doświadczenie w VBA, wkrótce będziesz w stanie sprawić, że program Microsoft Excel automatycznie wykona podstawowe zadania, co da ci więcej czasu na skoncentrowanie się na bardziej palących sprawach.

Zdobycie wiedzy z VBA wymaga czasu, ale wkrótce zobaczysz owoce swojej pracy, jeśli będziesz się jej trzymać.

Jednym świetnym miejscem do rozpoczęcia jest nasz autorytatywny samouczek dotyczący korzystania z VBA w programie Excel . Gdy już to zrobisz, ten prosty skrypt do wysyłania e-maili z Excela będzie dziecinnie prosty.

Udział Udział Ćwierkać E-mail Canon kontra Nikon: która marka aparatu jest lepsza?

Canon i Nikon to dwie największe marki w branży aparatów fotograficznych. Ale która marka oferuje lepszą gamę aparatów i obiektywów?

Czytaj dalej
Powiązane tematy
  • Wydajność
  • Programowanie
  • Porady e-mailowe
  • Programowanie
  • Programowanie Visual Basic
  • Microsoft Excel
  • Porady dotyczące pakietu Microsoft Office
O autorze Ryan Dube(942 opublikowanych artykułów)

Ryan posiada tytuł licencjata z elektrotechniki. Pracował 13 lat w inżynierii automatyzacji, 5 lat w IT, a teraz jest inżynierem aplikacji. Były redaktor zarządzający MakeUseOf, przemawiał na krajowych konferencjach poświęconych wizualizacji danych i występował w krajowej telewizji i radiu.

Więcej od Ryana Dube

Zapisz się do naszego newslettera

Dołącz do naszego newslettera, aby otrzymywać porady techniczne, recenzje, bezpłatne e-booki i ekskluzywne oferty!

Kliknij tutaj, aby zasubskrybować