Macro pentru a trimite e-mailuri din Excel (5 exemple adecvate)

  • Imparte Asta
Hugh West

În acest articol, vă vom arăta 5 Macro la trimiteți un e-mail de la Excel Pentru a demonstra metodele noastre, am selectat un set de date cu 3 coloane : " Nume ", " Email ", și " Orașul ".

Descărcați caietul de practică

Folosind Macro pentru a trimite Email.xlsm

5 moduri de a utiliza macro pentru a trimite e-mailuri din Excel

1. Utilizarea bibliotecii de obiecte Outlook pentru a trimite e-mailuri

Pentru prima dată Macro , vom activa " Biblioteca de obiecte Microsoft Outlook 16.0 " la trimiteți un e-mail de la Excel În plus, trebuie să ne logăm în contul nostru. Outlook cont în Excel .

Pași:

La început, vom aduce la suprafață Visual Basic fereastră.

  • În primul rând, de la Dezvoltator tab>>> selectați Visual Basic .

Alternativ, puteți apăsa ALT + F11 pentru a afișa VBA fereastră.

  • În al doilea rând, din Unelte >>> select " Referințe... ".

Un nou caseta de dialog va apărea.

  • În al treilea rând, selectați " Biblioteca de obiecte Microsoft Outlook 16.0 ", și apăsați OK .

Astfel, vom permite Biblioteca de obiecte Outlook .

  • Ei din Introduceți >>>> selectați Modul .

Vom scrie codul nostru aici.

  • După aceea, introduceți următorul cod.
 Sub Macro_Send_Email() Dim eApp As Outlook.Application Dim eSource As String Set eApp = New Outlook.Application Dim eItem As Outlook.MailItem Set eItem = eApp.CreateItem(olMailItem) eItem.To = Range("C5").Value 'Aceste elemente sunt opționale 'eItem.CC = "[email protected]" 'etem.BCC = "[email protected]" eItem.Subject = "Trimitere e-mail folosind VBA din Excel" eItem.Body = "Bună ziua," & vbNewLine &"Sper că acest e-mail vă găsește bine." & _ vbNewLine & vbNewLine & _ "Cu stimă," & vbNewLine & "Exceldemy" 'Dacă doriți să atașați acest registru de lucru, atunci decomentați aceste două linii de mai jos 'Source = ThisWorkbook.FullName 'eItem.Attachments.Add Source eItem.Display 'poate folosi .Send End Sub 

Defalcarea codului VBA

  • În primul rând, ne numim Subprocedură Macro_Send_Email .
  • În al doilea rând, declarăm variabilă tipuri.
  • În al treilea rând, selectăm Outlook ca fiind Aplicație prin poștă .
  • Apoi, ne selectăm e-mail adresa de expediere de la celula C5 .
  • După aceea, se va trece la e-mail este setat în codul nostru.
  • În cele din urmă, " Proprietatea de afișare VBA " este folosit aici pentru a afișa e-mail Prin urmare, va trebui să apăsăm Trimiteți manual la trimiteți la e-mailuri În plus, putem folosi " Trimiteți proprietatea " la trimite e-mailuri fără a se afișa.
  • După aceea, Salvați și închideți Modul .

Acum, vom... Rulați codul.

  • În primul rând, de la Dezvoltator tab>>> selectați Macros .

The Caseta de dialog Macro va apărea.

  • În al doilea rând, selectați Subprocedură " Macro_Send_Email ".
  • În cele din urmă, apăsați Rulați .

După ce executăm codul, vom vedea e-mail Putem face clic pe Trimiteți Astfel, v-am arătat prima metodă de trimiterea un e-mail de la excel folosind VBA .

Citește mai mult: Trimiteți e-mailuri din Excel VBA fără Outlook (4 exemple adecvate)

2. Macro pentru trimiterea de e-mail din contul Gmail în Excel

Pentru această metodă, avem nevoie de acces mai puțin sigur la aplicații de la Gmail În plus, va trebui să activăm contul Microsoft CDO de la Referințe meniu.

Pași:

  • În primul rând, așa cum se arată în prima metodă , aduceți la suprafață Caseta de dialog Referințe .
  • În al doilea rând, selectați " Biblioteca Microsoft CDO pentru Windows 2000 " și apăsați OK .

  • În al treilea rând, mergeți la Securitate de la dvs. Setările contului Google .
  • În cele din urmă, porniți Acces mai puțin sigur la aplicații .

Acum, vom introduce datele noastre Macro cod.

  • În primul rând, așa cum se arată în metoda 1 , aduceți la suprafață Modul și introduceți acest cod.
 Option Explicit Sub Send_Gmail_Macro() Dim cMail As Object Dim cConfig As Object Dim sConfig As Variant Dim cSubject As String Dim cFrom As String Dim cTo As String Dim cCC As String Dim cBcc As String Dim cBody As String Dim cBody As String cSubject = "Macro to Send Gmail" cFrom = "[email protected]" cTo = "[email protected]" cBody = "Bună ziua. Acesta este un mesaj automat. Vă rugăm să nu răspundeți" Set cMail =CreateObject("CDO.Message") On Error GoTo Error_Handling Set cConfig = CreateObject("CDO.Configuration") cConfig.Load -1 Set sConfig = cConfig.Fields With sConfig .Item("//schemas.microsoft.com/cdo/configuration/sendusing") = 2 .Item("//schemas.microsoft.com/cdo/configuration/smtpserver") = "smtp.gmail.com" .Item("//schemas.microsoft.com/cdo/configuration/smtpauthenticate") = 1.Item("//schemas.microsoft.com/cdo/configuration/sendusername") = "[email protected]" .Item("//schemas.microsoft.com/cdo/configuration/sendpassword") = "SenderGmailPassword" .Item("//schemas.microsoft.com/cdo/configuration/smtpserverport") = 465 .Item("//schemas.microsoft.com/cdo/configuration/smtpusessl") = True .Update End With With cMail Set .Configuration = cConfig End With cMail.Subject =cSubject cMail.From = cFrom cMail.To = cTo cMail.TextBody = cBody cMail.CC = cCC cMail.BCC = cBcc cMail.Send Error_Handling: If Err.Description "" Then MsgBox Err.Description End Sub 

Defalcarea codului VBA

  • În primul rând, ne numim Subprocedură Trimite_Gmail_Macro .
  • În al doilea rând, declarăm variabilă tipuri.
  • În al treilea rând, stabilim e-mail conținut în codul nostru.
  • Apoi, vom furniza credențiale de conectare . trebuie să vă scrieți propriul ID și Parola aici.
  • După aceea, am stabilit port la 465 .
  • În cele din urmă, suntem trimiterea nostru e-mail .
  • Apoi, Salvați și Rulați acest cod.

Am reușit cu succes trimis un e-mail la adresa noastră.

Citește mai mult: Macro pentru a trimite e-mail din Excel cu corp (3 cazuri utile)

3. Trimiteți un e-mail către o listă de destinatari dintr-o coloană

Pentru a treia metodă, vom folosi trimite e-mailuri la 7 persoane care utilizează Macro de la Excel . Vom găsi ultimul rând din setul nostru de date, prin urmare codul nostru va funcționa pentru o listă mai lungă. Vom trimite e-mailuri de la celula C5:C10 gamă.

Pași:

  • În primul rând, așa cum se arată în metoda 1 , aduceți la suprafață Modul și introduceți acest cod.
 Sub Macro_Send_Email_From_A_List() Dim pApp As Object Dim pMail As Object Dim z As Integer Dim eList As String Dim eRow As Long Set pApp = CreateObject("Outlook.Application") Set pMail = pApp.CreateItem(0) eRow = Range("C:C").SpecialCells(xlCellTypeLastCell).Row - 1 With pMail eList = "" For z = 5 To eRow If eList = "" Then eList = Cells(z, 3).Value Else eList = eList & ";" & Cells(z,3).Value End If Next z .BCC = eList .Subject = "Hello There" .Body = "Acest mesaj vă este adus de Exceldemy." .Display 'Puteți folosi .Send aici End With Set pMail = Nothing Set pApp = Nothing End Sub 

Defalcarea codului VBA

  • În primul rând, ne numim Subprocedură Macro_Send_Email_From_A_List .
  • În al doilea rând, declarăm că variabilă tipuri.
  • În al treilea rând, selectăm Outlook ca fiind Aplicație prin poștă .
  • Apoi, vom găsi ultimul rând , care este 10 pentru setul nostru de date.
  • După aceea, pe măsură ce e-mail începe de la rândul 5 am introdus 5 ca valoare de pornire pentru " variabila z ". în plus, în cadrul e-mailuri se află pe Coloana C , de aceea am introdus 3 în interiorul Celule proprietate.
  • Apoi, vom seta e-mail conținut în codul nostru.
  • În cele din urmă, " .Afișare " este folosit aici pentru a afișa e-mail Prin urmare, va trebui să apăsăm Trimiteți manual la trimiteți la e-mailuri În plus, putem folosi " .Trimite " la trimiteți un e-mail fără a se afișa.
  • Apoi, Salvați și Rulați la Modul .

Putem vedea că toate e-mailuri sunt afișate în BCC În concluzie, putem apăsa pur și simplu pe Trimiteți pentru a ne îndeplini sarcina.

Citește mai mult: Cum să trimiteți e-mailuri din lista Excel (2 moduri eficiente)

Lecturi similare

  • Cum să trimiteți automat un e-mail atunci când se îndeplinește o condiție în Excel
  • Cum să partajați un fișier Excel online (2 metode simple)
  • Trimiterea automată a unui e-mail de atenționare dintr-o foaie de lucru Excel utilizând VBA
  • Cum să trimiteți un e-mail dacă sunt îndeplinite condițiile în Excel (3 metode simple)
  • Cum se activează partajarea unui registru de lucru în Excel

4. Macro pentru a trimite o singură foaie prin e-mail

În această secțiune, vom trimiteți la Foaie de lucru activă către persoana noastră țintă. Aici, va trebui să alegem locația în care se va afla Excel dosar.

Pași:

  • În primul rând, așa cum se arată în metoda 1 , aduceți la suprafață Modul și introduceți acest cod.
 Sub Macro_Email_Single_Sheet() Dim pApp As Object Dim pMail As Object Dim zBook As Workbook Dim fxName As String 'Dim zSheet As Worksheet 'Dim shtName As String Application.ScreenUpdating = False ActiveSheet.Copy Set zBook = ActiveWorkbook fxName = zBook.Worksheets(1).Name On Error Resume Next Kill "C:\Users\Rafi\OneDrive\Desktop\Softeko\47\" & fxName On Error GoTo 0 zBook.SaveAsFileName:="C:\Users\Rafi\OneDrive\Desktop\Softeko\47\" & fxName Set pApp = CreateObject("Outlook.Application") Set pMail = pApp.CreateItem(0) With pMail .To = "[email protected]" .Subject = "Macro to Send Single Sheet via Email" .Body = "Dear RecieverName," & vbCrLf & vbCrLf & _ "Fișierul solicitat este atașat" .Attachments.Add zBook.FullName .Display End WithzBook.ChangeFileAccess Mode:=xlReadOnly Kill zBook.FullName zBook.Close SaveChanges:=False Application.ScreenUpdating = True Set pMail = Nothing Set pApp = Nothing End Sub 

Defalcarea codului VBA

  • În primul rând, ne numim Subprocedură Macro_Email_Singura_foaie .
  • În al doilea rând, declarăm variabilă tipuri.
  • În al treilea rând, copiem Foaie activă și salvarea acestuia ca un fișier separat Caietul de lucru .
  • După aceea, vom selecta Outlook ca fiind Aplicație prin poștă .
  • Apoi, vom seta e-mail conținut în codul nostru.
  • După aceea, am atașat la Foaie la e-mail .
  • În cele din urmă, utilizați " .Afișare " pentru a ne afișa e-mail Prin urmare, va trebui să apăsăm Trimiteți manual la trimiteți la e-mailuri În plus, putem folosi " .Trimite " la trimiteți un e-mail fără a se afișa.
  • Apoi, Salvați și Rulați la Modul .

Vom vedea Foaie numele în fereastră. Apăsați Trimiteți pentru a finaliza sarcina.

Noi putem deschis fișierul și verificați dacă codul nostru funcționează.

Citește mai mult: Cum să trimiteți o foaie de calcul Excel editabilă prin e-mail (3 metode rapide)

5. Macro pentru a trimite e-mailuri pe baza valorii celulei

Pentru ultima metodă, am schimbat puțin setul de date. Am adăugat " Plata Datorita " coloana în setul de date. Aici, vom trimiteți un e-mail care conține orașul " Obama ". Putem vedea în mod clar că rândul 5 îl conține, de aceea vom trimiteți un e-mail numai pentru acea persoană.

Pași:

  • În primul rând, așa cum se arată în metoda 1 , aduceți la suprafață Modul și introduceți acest cod.
 Option Explicit Sub Send_Email_Condition() Dim xSheet As Worksheet Dim mAddress As String, mSubject As String, eName As String Dim eRow As Long, x As Long Set xSheet = ThisWorkbook.Sheets("Conditions") With xSheet eRow = .Cells(.Rows.Count, 5).End(xlUp).Row For x = 5 To eRow If .Cells(x, 4)>= 1 And .Cells(x, 5) = "Obama" Then mAddress = .Cells(x, 3) mSubject = "Request For Payment" eName =.Cells(x, 2) Call Send_Email_With_Multiple_Condition(mAddress, mSubject, eName) End If Next x End With End With End Sub Sub Send_Email_With_Multiple_Condition(mAddress As String, mSubject As String, eName As String) Dim pApp As Object Dim pMail As Object Set pApp = CreateObject("Outlook.Application") Set pMail = pApp.CreateItem(0) With pMail .To = mAddress .CC = "" .BCC = "" .Subject = mSubject .Body ="Mr./Mrs. " & eName & ", Vă rugăm să plătiți suma datorată în următoarea săptămână." _ & vbNewLine & "Suma exactă este atașată la acest e-mail." .Attachments.Add ActiveWorkbook.FullName 'Trimiteți fișierul prin e-mail .Display 'Putem folosi .Send și aici End With Set pMail = Nothing Set pApp = Nothing End Sub 

Defalcarea codului VBA

  • În primul rând, vom numi primul nostru Subprocedură Condiția_Email_de_trimitere .
  • În al doilea rând, declarăm că Variabilă tipuri și setarea " Condiții ", ca fiind Foaie .
  • În al treilea rând, ultima rând În plus, valoarea noastră pornește de la rândul 5 , de aceea am pus rândul 5 până la ultimul rând în codul nostru.
  • Apoi, apelați al doilea nostru Subprocedură Trimitere_Email_cu_condiție_multiplă .
  • După aceea, vom selecta Outlook ca fiind Aplicație prin poștă .
  • Apoi, se va trece la e-mail este setat în codul nostru.
  • Aici, atașăm Excel cu fișierul e-mail folosind Anexă metoda.
  • După aceea, " .Afișare " este folosit aici pentru a afișa e-mail Prin urmare, va trebui să apăsăm Trimiteți manual la trimiteți la e-mailuri În plus, putem folosi " .Trimite " la trimiteți un e-mail fără a se afișa.
  • Apoi, Salvați și Rulați la Modul .

În concluzie, v-am arătat încă o metodă de trimiterea un e-mail folosind Macro VBA de la Excel .

Citește mai mult: Trimiteți automat e-mailuri din Excel pe baza conținutului celulelor (2 metode)

Secțiunea practică

Am adăugat seturi de date de practică pentru fiecare metodă din Excel dosar.

Concluzie

Ți-am arătat 5 metode de utilizat Macro la trimiteți un e-mail de la Excel Mulțumesc pentru lectură, continuă să excelezi!

Hugh West este un trainer și analist Excel cu o experiență de peste 10 ani în industrie. Deține o diplomă de licență în contabilitate și finanțe și un master în administrarea afacerilor. Hugh are o pasiune pentru predare și a dezvoltat o abordare unică de predare care este ușor de urmărit și de înțeles. Cunoștințele sale experte despre Excel au ajutat mii de studenți și profesioniști din întreaga lume să-și îmbunătățească abilitățile și să exceleze în cariera lor. Prin blogul său, Hugh își împărtășește cunoștințele lumii, oferind tutoriale gratuite Excel și instruire online pentru a ajuta persoanele și companiile să-și atingă întregul potențial.