Indholdsfortegnelse
I denne artikel vil vi vise dig 5 Makro til sende e-mail fra Excel For at demonstrere vores metoder har vi valgt et datasæt med 3 kolonner : " Navn ", " E-mail ", og " By ".
Download arbejdsbog til øvelser
Brug af makro til at sende e-mail.xlsm5 måder at bruge makro til at sende e-mail fra Excel på
1. Brug af Outlook Object Library til at sende e-mail
For den første Makro , vi vil aktivere " Microsoft Outlook 16.0 Objektbibliotek " til send en e-mail fra Excel Desuden skal vi logge ind på vores Outlook konto i Excel .
Trin:
I begyndelsen vil vi bringe den Visual Basic vindue.
- For det første, fra den Udvikler faneblad>>>> vælg Visual Basic .
Alternativt kan du trykke på ALT + F11 for at vise den VBA vindue.
- For det andet, fra Værktøj >>>> vælg " Referencer... ".
En ny dialogboks vil blive vist.
- For det tredje skal du vælge " Microsoft Outlook 16.0 Objektbibliotek ", og tryk på OK .
Vi vil således aktivere Outlook objektbibliotek .
- Dem fra Indsæt >>>> vælg Modul .
Vi skriver vores kode her.
- Indtast derefter følgende kode.
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 'Disse elementer er valgfrie 'eItem.CC = "[email protected]" 'etem.BCC = "[email protected]" eItem.Subject = "Sending Email using VBA from Excel" eItem.Body = "Hello," & vbNewLine &"Jeg håber, at denne e-mail kommer dig til gode." & _ vbNewLine & vbNewLine & _ "Med venlig hilsen," & vbNewLine & "Exceldemy" 'Hvis du vil vedhæfte denne arbejdsbog, skal du fjerne disse to linjer fra nedenstående 'Source = ThisWorkbook.FullName 'eItem.Attachments.Add Source eItem.Display 'kan bruge .Send End Sub
VBA-kode opdeling
- For det første kalder vi vores Underprocedure Makro_Send_Email .
- For det andet erklærer vi den variabel typer.
- For det tredje udvælger vi Outlook som vores Mail ansøgning .
- Derefter vælger vi vores e-mail sendeadresse fra celle C5 .
- Herefter vil den e-mail indhold er indstillet i vores kode.
- Endelig, " VBA-visningsejendom " bruges her til at vise vores e-mail Derfor skal vi trykke på Send manuelt til send e-mails Desuden kan vi bruge " Send ejendom " til sende e-mails uden at blive vist.
- Derefter, Gem og lukker den Modul .
Nu vil vi Kør koden.
- For det første, fra den Udvikler faneblad>>>> vælg Makroer .
Dialogboks for makroer vil blive vist.
- For det andet skal du vælge vores Underprocedure " Makro_Send_Email ".
- Til sidst skal du trykke på Kør .
Når koden er udført, vil vi se e-mail vindue. Vi kan klikke på Send . Vi har således vist dig den første metode til at sende en e-mail fra excel ved hjælp af VBA .
Læs mere: Send e-mail fra Excel VBA uden Outlook (4 egnede eksempler)
2. Makro til afsendelse af e-mail fra Gmail-konto i Excel
Til denne metode har vi brug for mindre sikker app-adgang fra den Gmail Derudover skal vi aktivere Microsoft CDO fra den Referencer menu.
Trin:
- For det første, som vist i den første metode , få frem den Dialogboksen Referencer .
- For det andet skal du vælge " Microsoft CDO til Windows 2000 Bibliotek ", og tryk på OK .
- For det tredje skal du gå til Sikkerhed fra din Indstillinger for Google-konto .
- Endelig skal du tænde for Mindre sikker app-adgang .
Nu indtaster vi vores Makro kode.
- For det første, som vist i metode 1 , få frem den Modul vindue og indtast denne kode.
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 cBcc As String Dim cBody As String cSubject = "Makro til at sende Gmail" cFrom = "[email protected]" cTo = "[email protected]" cBody = "Hej. Dette er en automatiseret besked. Svar venligst ikke" 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
VBA-kode opdeling
- For det første kalder vi vores Underprocedure Send_Gmail_Macro .
- For det andet erklærer vi den variabel typer.
- For det tredje fastsætter vi den e-mail indhold i vores kode.
- Derefter leverer vi vores loginoplysninger Du skal skrive din egen ID og Adgangskode her.
- Derefter har vi sat os for at port til 465 .
- Endelig er vi sende vores e-mail .
- Derefter, Gem og Kør denne kode.
Vi har med succes sendt en e-mail til vores adresse.
Læs mere: Makro til at sende e-mail fra Excel med krop (3 nyttige tilfælde)
3. Send e-mail til en liste over modtagere fra en kolonne
Med den tredje metode skal vi sende e-mails til 7 mennesker, der bruger Makro fra Excel . Vi finder den sidste række af vores datasæt, og derfor vil vores kode fungere for en længere liste. Vi vil sende e-mails fra den celle C5:C10 rækkevidde.
Trin:
- For det første, som vist i metode 1 , få frem den Modul vindue og indtast denne kode.
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 'Du kan bruge .Send her End With Set pMail = Nothing Set pApp = Nothing End Sub
VBA-kode opdeling
- For det første kalder vi vores Underprocedure Makro_Send_Email_From_A_List .
- For det andet erklærer vi den variabel typer.
- For det tredje udvælger vi Outlook som vores Mail ansøgning .
- Derefter finder vi den sidste række , som er 10 for vores datasæt.
- Derefter, som vores e-mail starter fra række 5 vi har indtastet 5 som startværdi for " variabel z ". Desuden er vores e-mails er på den C-kolonne , derfor har vi indtastet 3 inden for den Celler ejendom.
- Derefter indstiller vi den e-mail indhold i vores kode.
- Endelig, " .Visning " bruges her til at vise vores e-mail Derfor skal vi trykke på Send manuelt til send e-mails Desuden kan vi bruge " .Send " til sende e-mail uden at blive vist.
- Derefter, Gem og Kør Modul .
Vi kan se, at alle vores e-mails vises i BCC Til sidst kan vi blot trykke på Send for at fuldføre vores opgave.
Læs mere: Sådan sender du e-mail fra Excel-listen (2 effektive måder)
Lignende læsninger
- Sådan sendes e-mail automatisk, når betingelsen er opfyldt i Excel
- Sådan deler du Excel-fil online (2 nemme metoder)
- Send påmindelsesmail automatisk fra et Excel-regneark ved hjælp af VBA
- Sådan sendes e-mail, hvis betingelserne er opfyldt i Excel (3 nemme metoder)
- Sådan aktiveres Del arbejdsmappe i Excel
4. Makro til at sende et enkelt ark via e-mail
I dette afsnit vil vi send Aktivt regneark til vores målperson. Her skal vi vælge placeringen af vores Excel fil.
Trin:
- For det første, som vist i metode 1 , få frem den Modul vindue og indtast denne kode.
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\47\" & fxName On Error GoTo 0 zBook.SaveAsFileName:="C:\Users\Rafi\OneDrive\Desktop\Softeko\47\47\" & fxName Set pApp = CreateObject("Outlook.Application") Set pMail = pApp.CreateItem(0) With pMail .To = "[email protected]" .Subject = "Makro til at sende enkeltark via e-mail" .Body = "Kære modtagernavn," & vbCrLf & vbCrLf & _ "Din ønskede fil er vedhæftet" .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-kode opdeling
- For det første kalder vi vores Underprocedure Makro_Email_Single_Sheet .
- For det andet erklærer vi den variabel typer.
- For det tredje kopierer vi den Aktivt ark og gemme den som en separat Arbejdsbog .
- Derefter vælger vi Outlook som vores Mail ansøgning .
- Derefter indstiller vi den e-mail indhold i vores kode.
- Derefter har vi vedhæftet Ark til den e-mail .
- Endelig skal du bruge " .Visning " for at vise vores e-mail Derfor skal vi trykke på Send manuelt til send e-mails Desuden kan vi bruge " .Send " til sende e-mail uden at blive vist.
- Derefter, Gem og Kør Modul .
Vi vil se den Ark navn i vinduet. Tryk på Send for at fuldføre opgaven.
Vi kan åben filen og kontrollere, at vores kode fungerer.
Læs mere: Sådan sender du et redigerbart Excel-regneark via e-mail (3 hurtige metoder)
5. Makro til at sende e-mail baseret på celleværdi
I den sidste metode har vi ændret vores datasæt en lille smule. Vi har tilføjet " Betaling På " kolonne til datasættet. Her vil vi send en e-mail der indeholder byen " Obama ". Vi kan tydeligt se, at række 5 indeholder den, og derfor vil vi send en e-mail kun til den pågældende person.
Trin:
- For det første, som vist i metode 1 , få frem den Modul vindue og indtast denne kode.
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 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 & ", Betal venligst det skyldige beløb inden for den næste uge." _ & vbNewLine & "Det nøjagtige beløb er vedhæftet denne e-mail." .Attachments.Add ActiveWorkbook.FullName 'Send filen via e-mail .Display 'Vi kan også bruge .Send her End With Set pMail = Nothing Set pApp = Nothing End Sub
VBA-kode opdeling
- For det første kalder vi vores første Underprocedure Send_Email_Condition .
- For det andet erklærer vi den Variabel typer og indstilling " Betingelser " som vores Ark .
- For det tredje, den sidste række Desuden starter vores værdi fra række 5 , derfor har vi sat række 5 til den sidste række i vores kode.
- Derefter kalder vi vores anden Underprocedure Send_Email_With_Multiple_Condition .
- Derefter vælger vi Outlook som vores Mail ansøgning .
- Derefter er det e-mail indhold er indstillet i vores kode.
- Her vedhæfter vi den Excel fil med den e-mail ved hjælp af Vedhæftede fil metode.
- Herefter " .Visning " bruges her til at vise vores e-mail Derfor skal vi trykke på Send manuelt til send e-mails Desuden kan vi bruge " .Send " til sende e-mail uden at blive vist.
- Derefter, Gem og Kør Modul .
Afslutningsvis har vi vist dig endnu en metode til at sende en e-mail ved hjælp af VBA-makro fra Excel .
Læs mere: Automatisk sende e-mails fra Excel baseret på celleindhold (2 metoder)
Øvelsesafsnit
Vi har tilføjet øvelsesdatasæt for hver metode i Excel fil.
Konklusion
Vi har vist dig 5 metoder til brug Makro til send en e-mail fra Excel Tak for læsningen, og bliv ved med at være dygtig!