VBA Wysyłaj wiadomości e-mail z Excela przez Gmaila

W tym samouczku dowiesz się, jak wysyłać wiadomości e-mail z programu Excel przez Gmaila za pomocą VBA.

Dodawanie referencji CDO firmy Microsoft

Aby umożliwić programowi Excel wysyłanie wiadomości e-mail przez Gmaila, musisz najpierw dodać bibliotekę referencyjną CDO do projektu programu Excel.

W Edytorze VBA kliknij Narzędzia, Referencje.

Wyszukaj Dokumentację CDO firmy Microsoft i kliknij przycisk OK.

Wysyłanie wiadomości e-mail przez Gmaila

Aby wysłać wiadomość e-mail z programu Excel za pośrednictwem Gmaila, musisz najpierw zadeklarować obiekt CDO (Przyciemnij gMaila jako CDO.Message).

Po drugie, musisz skonfigurować uwierzytelnianie SSL dla swojej wiadomości w swoim kodzie. Oznacza to, że musisz ustawić serwer SMTP i szczegóły portu, aby Twoja poczta e-mail działała poprawnie, a także skonfigurować nazwę użytkownika i hasło.

W poniższym fragmencie kodu jest to, czego potrzebujesz na początku funkcji programu Excel. Potrzebujesz adresata wiadomości e-mail (strTo) i tematu (strSubject), ale CC i treść wiadomości e-mail mogą być zmiennymi opcjonalnymi.

12345678910111213141516171819202122232425262728 Function CreateEmail(strTo As String, strSubject As String, opcjonalnie strCC As String, opcjonalnie strBody As String)'utwórz obiekt CDO'Przyciemnij gMail jako CDO.MessageUstaw gMail = Nowe CDO.Wiadomość„Włącz uwierzytelnianie SSL”gMail.Konfiguracja.Pola.Element _(„http://schemas.microsoft.com/cdo/configuration/smtpusessl”) = Prawda'Ustaw uwierzytelnianie SMTP włączone=true (1)gMail.Konfiguracja.Pola.Element _(„http://schemas.microsoft.com/cdo/configuration/smtpauthenticate”) = 1'Ustaw serwer SMTP i szczegóły portugMail.Konfiguracja.Pola.Element _(„http://schemas.microsoft.com/cdo/configuration/smtpserver”) = „smtp.gmail.com”gMail.Configuration.Fields.Item _ („http://schemas.microsoft.com/cdo/configuration/smtpserverport”) = 25gMail.Configuration.Fields.Item _ ("http://schemas.microsoft.com/cdo/configuration/sendusing") = 2'Ustaw swoją nazwę użytkownika i hasło do własnego konta Gmail tutajgMail.Konfiguracja.Pola.Element _(„http://schemas.microsoft.com/cdo/configuration/sendusername”) = „[email protected]”gMail.Konfiguracja.Pola.Element _(„http://schemas.microsoft.com/cdo/configuration/sendpassword”) = „*********”'Zaktualizuj pola konfiguracjigMail.Configuration.Fields.Update

Gdy to zrobisz, możesz utworzyć swój e-mail i zakończyć funkcję.

123456789 'ustaw właściwości wiadomości e-mail i plik do wysłaniaZ gMail .Subject = "Tu wpisz temat".Od = "[email protected]".To = strTo.TextBody = strBodyKończyć z'wysłać pocztęgMail.WyślijKoniec funkcji

Następnie możesz wywołać swoją funkcję za pomocą następującego kodu

1234567 Sub Wyślij e-mail'utwórz treść e-mailaDim strText jako ciągstrText = "Dzień dobry. Mam nadzieję, że masz się dobrze - to jest testowy e-mail"'wypełnij argumenty funkcji - pozostaw CC puste, więc wstaw przecinek jako symbol zastępczyCreateEmail("[email protected]", "Testowa wiadomość e-mail", , strText)Napis końcowy

Wysyłanie skoroszytu przez Gmaila

Aby wysłać skoroszyt jako załącznik za pośrednictwem Gmaila, możesz utworzyć funkcję podobną do powyższej z kilkoma dodatkami.

Musisz dodać kod, aby wybrać skoroszyt, a następnie dołączyć wybrany plik do wiadomości e-mail.

Będziemy korzystać z pakietu Microsoft Office Okno dialogowe pliku polecenie, aby wybrać plik do wysłania, a następnie użyj Dodać załącznik właściwość wiadomości e-mail, aby dodać plik jako załącznik.

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 Function SendWorkbook(strTo As String, strSubject As String, opcjonalnie strCC As String, opcjonalnie strBody As String) As BooleanW przypadku błędu przejdź do eh:'utwórz obiekt CDO'Przyciemnij gMail jako CDO.MessageUstaw gMail = Nowe CDO.Wiadomość„Włącz uwierzytelnianie SSL”gMail.Konfiguracja.Pola.Element _(„http://schemas.microsoft.com/cdo/configuration/smtpusessl”) = Prawda'Ustaw uwierzytelnianie SMTP włączone=true (1)gMail.Konfiguracja.Pola.Element _(„http://schemas.microsoft.com/cdo/configuration/smtpauthenticate”) = 1'Ustaw serwer SMTP i szczegóły portugMail.Konfiguracja.Pola.Element _(„http://schemas.microsoft.com/cdo/configuration/smtpserver”) = „smtp.gmail.com”gMail.Konfiguracja.Pola.Element _(„http://schemas.microsoft.com/cdo/configuration/smtpserverport”) = 25gMail.Konfiguracja.Pola.Element _(„http://schemas.microsoft.com/cdo/configuration/sendusing”) = 2'Ustaw swoją nazwę użytkownika i hasło do własnego konta Gmail tutajgMail.Konfiguracja.Pola.Element _(„http://schemas.microsoft.com/cdo/configuration/sendusername”) = „[email protected]”gMail.Konfiguracja.Pola.Element _(„http://schemas.microsoft.com/cdo/configuration/sendpassword”) = „*********”'Zaktualizuj pola konfiguracjigMail.Configuration.Fields.Update'wybierz plik do wysłania za pomocą okna dialogowego pliku microsoftDim strFileToSend As StringDim dlgFile As FileDialogDim strItem jako wariantDim nDlgResult As LongUstaw dlgFile = Application.FileDialog(msoFileDialogFilePicker)'filtr tylko dla plików Excel i CSVdlgFile.Filters.Add "Pliki Excela", "*.csv; *.xls; *.xlsx; *.xlsm"nDlgResult = dlgFile.ShowJeśli nDlgResult = -1 WtedyJeśli dlgFile.SelectedItems.Count > 0 WtedyDla każdego strItem w dlgFile.SelectedItemsstrFileToSend = strItemNastępny elementZakończ, jeśliZakończ, jeśli'ustaw właściwości wiadomości e-mail i plik do wysłaniaZ gMailem.Subject = "Tu wpisz temat".Od = "[email protected]".To = strTo.TextBody = strBody'dodaj wybrany plik jako załącznik.AddAttachment strFileToSendKończyć z'wysłać pocztęgMail.WyślijWyślij Zeszyt= PrawdaWyjdź z funkcjiech:Wyślij Zeszyt = FałszKoniec funkcji

Jeśli port konfiguracyjny 25 nie działa, może pojawić się błąd - „Transport nie mógł połączyć się z serwerem” Zmień port na 25 i spróbuj ponownie.

Powyższa funkcja może być wywołana za pomocą poniższej procedury.

123456789101112131415 Sub SendMail()Dim strTo As StringDim strSubject As StringDim strBody As String'wypełnij zmiennestrTo = "[email protected]"strSubject = "Proszę znaleźć załączony plik finansowy"strBody = "jakiś tekst trafia tutaj do treści wiadomości e-mail"'wywołaj funkcję, aby wysłać wiadomość e-mailJeśli SendWorkbook(strTo, strSubject, , strBody) = true toMsgbox "Sukces tworzenia wiadomości e-mail"W przeciwnym razieMsgbox "Utworzenie wiadomości e-mail nie powiodło się!"Zakończ, jeśliNapis końcowy

Zostaniesz poproszony o wybranie pliku, który chcesz wysłać. Ten kod jest ograniczony do plików Excela ze względu na filtr „*.csv; *.xls; *.xlsx; *.xlsm” - możesz jednak użyć tego kodu również w programie Word i odpowiednio zmienić filtr.

Wybierz plik i kliknij Otwórz. Uruchomienie kodu może chwilę potrwać - jeśli wiadomość zostanie wysłana pomyślnie, otrzymasz następującą wiadomość.

Będziesz pomóc w rozwoju serwisu, dzieląc stronę ze swoimi znajomymi

wave wave wave wave wave