Inhoudsopgave
In dit artikel laten we je zien 5 Macro naar stuur e-mail van Excel Om onze methoden te demonstreren, hebben we een dataset geselecteerd met 3 kolommen : " Naam ", " E-mail ", en " Stad ".
Download Praktijk Werkboek
Macro gebruiken om e-mail te versturen.xlsm5 manieren om Macro te gebruiken om e-mail te versturen vanuit Excel
1. Gebruik van Outlook-objectbibliotheek om e-mail te verzenden
Voor de eerste Macro gaan we " Microsoft Outlook 16.0 Objectenbibliotheek " naar stuur een e-mail van Excel Bovendien moeten we inloggen op onze Outlook rekening in Excel .
Stappen:
In het begin gaan we de Visual Basic raam.
- Ten eerste, van de Ontwikkelaar tab>>> selecteer Visual Basic .
U kunt ook op ALT + F11 om de VBA raam.
- Ten tweede, van Gereedschap >>> selecteer " Referenties... ".
Een nieuwe dialoogvenster zal verschijnen.
- Ten derde, selecteer " Microsoft Outlook 16.0 Objectenbibliotheek ", en druk op OK .
Dus, we zullen Outlook objectbibliotheek .
- Zij van Plaats >>> selecteer Module .
We typen onze code hier.
- Typ daarna de volgende code.
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 'Deze items zijn optioneel 'eItem.CC = "[email protected]" 'etem.BCC = "[email protected]" eItem.Subject = "Sending Email using VBA from Excel" eItem.Body = "Hello," & vbNewLine &"Hopelijk vindt deze e-mail u goed." & _ vbNewLine & vbNewLine & _ "Hoogachtend," & vbNewLine & "Exceldemy" 'Als u deze werkmap wilt bijvoegen, maak dan deze twee regels van hieronder leeg 'Source = ThisWorkbook.FullName 'eItem.Attachments.Add Source eItem.Display 'kan .Send gebruiken End Sub
VBA-code opsplitsing
- Ten eerste noemen we onze Subprocedure Macro_Send_Email .
- Ten tweede verklaren we de variabele soorten.
- Ten derde selecteren we Outlook als onze Mail Aanvraag .
- Dan selecteren we onze e-mail verzendadres van cel C5 .
- Daarna wordt de e-mail inhoud is ingesteld in onze code.
- Tot slot, " VBA Weergave-eigenschap " wordt hier gebruikt om onze e-mail Daarom moeten we op Stuur handmatig naar stuur de e-mails Bovendien kunnen we " Eigendom verzenden " naar e-mails versturen zonder weergave.
- Daarna, Sla en sluit de Module .
Nu, we zullen Ren de code.
- Ten eerste, van de Ontwikkelaar tab>>> selecteer Macro's .
De Macro dialoogvenster zal verschijnen.
- Ten tweede, selecteer onze Subprocedure " Macro_Send_Email ".
- Druk tenslotte op Ren .
Na het uitvoeren van de code zien we de e-mail venster. We kunnen klikken op Stuur Dus, we hebben u de eerste methode van het versturen van een e-mail van excel met behulp van VBA .
Lees meer: E-mail verzenden vanuit Excel VBA zonder Outlook (4 geschikte voorbeelden)
2. Macro voor het verzenden van e-mail van Gmail-account in Excel
Voor deze methode hebben we nodig minder veilige app-toegang van de Gmail account. Bovendien moeten we het volgende inschakelen Microsoft CDO van de Referenties menu.
Stappen:
- Ten eerste, zoals in de eerste methode breng de Dialoogvenster Referenties .
- Selecteer ten tweede " Microsoft CDO voor Windows 2000-bibliotheek " en druk op OK .
- Ten derde, ga naar Beveiliging van uw Instellingen Google-account .
- Zet ten slotte Minder veilige app-toegang .
Nu voeren we onze Macro code.
- Ten eerste, zoals weergegeven in methode 1 breng de Module en typ deze code in.
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 cSubject = "Macro to Send Gmail" cFrom = "[email protected]" cTo = "[email protected]" cBody = "Hallo. Dit is een geautomatiseerd bericht. Gelieve niet te antwoorden" 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 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
VBA-code opsplitsing
- Ten eerste noemen we onze Subprocedure Verzenden_Gmail_Macro .
- Ten tweede verklaren we de variabele soorten.
- Ten derde stellen we de e-mail inhoud in onze code.
- Dan voorzien we onze inloggegevens Je moet je eigen ID en Wachtwoord hier.
- Daarna hebben we haven naar 465 .
- Eindelijk zijn we het versturen van onze e-mail .
- Dan, Sla en Ren deze code.
We hebben met succes verzonden een e-mail naar ons adres.
Lees meer: Macro om e-mail te versturen vanuit Excel met body (3 nuttige gevallen)
3. E-mail verzenden naar een lijst van ontvangers vanuit een kolom
Voor de derde methode gaan we e-mails versturen naar 7 mensen die Macro van Excel We zullen de laatste rij van onze dataset, dus onze code zal werken voor een langere lijst. We zullen e-mails versturen van de cel C5:C10 bereik.
Stappen:
- Ten eerste, zoals weergegeven in methode 1 breng de Module en typ deze code in.
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 = "This Message is brought to you by Exceldemy." .Display 'U kunt hier .Send gebruiken End With Set pMail = Nothing Set pApp = Nothing End Sub
VBA-code opsplitsing
- Ten eerste noemen we onze Subprocedure Macro_Send_Email_From_A_List .
- Ten tweede verklaren we de variabele soorten.
- Ten derde selecteren we Outlook als onze Mail Aanvraag .
- Dan vinden we de laatste rij dat is 10 voor onze dataset.
- Daarna, als onze e-mail begint bij rij 5 hebben we ingevoerd 5 als startwaarde voor " variabele z "Bovendien, onze e-mails zijn op de C-colonne dus hebben we ingevoerd 3 binnen de Cellen eigendom.
- Dan stellen we de e-mail inhoud in onze code.
- Tot slot, " .Display " wordt hier gebruikt om onze e-mail Daarom moeten we op Stuur handmatig naar stuur de e-mails Bovendien kunnen we " .zenden " naar stuur e-mail zonder weergave.
- Dan, Sla en Ren de Module .
We kunnen zien dat al onze e-mails worden weergegeven in BCC Tot slot kunnen we gewoon op Stuur om onze taak te volbrengen.
Lees meer: Hoe e-mail verzenden vanuit Excel lijst (2 effectieve manieren)
Vergelijkbare lezingen
- Hoe in Excel automatisch een e-mail te versturen wanneer aan een voorwaarde is voldaan
- Hoe Excel-bestanden online delen (2 eenvoudige methoden)
- Automatisch een herinneringse-mail versturen vanuit een Excel-werkblad met VBA
- Hoe e-mail te sturen als aan voorwaarden is voldaan in Excel (3 eenvoudige methoden)
- Werkmap delen in Excel inschakelen
4. Macro voor het verzenden van een enkel blad via e-mail
In dit deel zullen we stuur de Actief werkblad naar onze doelpersoon. Hier moeten we de locatie van onze Excel bestand.
Stappen:
- Ten eerste, zoals weergegeven in methode 1 breng de Module en typ deze code in.
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:sersRafiDesktopSofteko" & 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 & _ "Your requested file is attached" .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
VBA-code opsplitsing
- Ten eerste noemen we onze Subprocedure Macro_Email_Single_Sheet .
- Ten tweede verklaren we de variabele soorten.
- Ten derde kopiëren we de Actief blad en opslaan als een aparte Werkboek .
- Daarna selecteren we Outlook als onze Mail Aanvraag .
- Dan stellen we de e-mail inhoud in onze code.
- Daarna hebben we de Blad aan de e-mail .
- Gebruik tot slot " .Display " om onze e-mail Daarom moeten we op Stuur handmatig naar stuur de e-mails Bovendien kunnen we " .zenden " naar stuur e-mail zonder weergave.
- Dan, Sla en Ren de Module .
We zullen de Blad naam in het venster. Druk op Stuur om de taak te volbrengen.
We kunnen open het bestand en controleer of onze code werkt.
Lees meer: Hoe een bewerkbaar Excel-spreadsheet per e-mail verzenden (3 snelle methoden)
5. Macro om e-mail te versturen op basis van celwaarde
Voor de laatste methode hebben we onze dataset een beetje veranderd. We hebben de " Betaling Due " kolom naar de dataset. Hier zullen we stuur een e-mail dat de stad " Obama "We kunnen duidelijk zien dat rij 5 bevat, dus we gaan stuur een e-mail alleen aan die persoon.
Stappen:
- Ten eerste, zoals weergegeven in methode 1 breng de Module en typ deze code in.
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 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 & ", Betaal het verschuldigde bedrag binnen de volgende week." _ & vbNewLine & "Het exacte bedrag is bij deze e-mail gevoegd." .Attachments.Add ActiveWorkbook.FullName 'Verstuur het bestand via e-mail .Display 'We kunnen .Send hier ook gebruiken End With Set pMail = Nothing Set pApp = Nothing End Sub
VBA-code opsplitsing
- Ten eerste noemen we onze eerste Subprocedure Verzend_Email_Conditie .
- Ten tweede verklaren we de Variabel soorten en instelling " Voorwaarden " als onze Blad .
- Ten derde, de laatste rij nummer is gevonden. Bovendien begint onze waarde van rij 5 vandaar dat we rij 5 tot de laatste rij in onze code.
- Roep dan onze tweede Subprocedure Verzenden_Email_met_Meerdere_voorwaarde .
- Daarna selecteren we Outlook als onze Mail Aanvraag .
- Dan, de e-mail inhoud is ingesteld in onze code.
- Hier maken we de Excel bestand met de e-mail met behulp van de Bijlage methode.
- Daarna, " .Display " wordt hier gebruikt om onze e-mail Daarom moeten we op Stuur handmatig naar stuur de e-mails Bovendien kunnen we " .zenden " naar stuur e-mail zonder weergave.
- Dan, Sla en Ren de Module .
Tot slot hebben we u nog een andere methode getoond om het versturen van een e-mail met behulp van VBA-macro van Excel .
Lees meer: Automatisch e-mails versturen vanuit Excel op basis van celinhoud (2 methoden)
Praktijk Sectie
We hebben oefendatasets toegevoegd voor elke methode in de Excel bestand.
Conclusie
We hebben je laten zien 5 te gebruiken methoden Macro naar stuur een e-mail van Excel Bedankt voor het lezen, blijf uitblinken!