Excel-makro til automatisk at sende e-mail (3 egnede eksempler)

  • Del Dette
Hugh West

Denne vejledning vil illustrere, hvordan du bruger Excel-makro til at sende en e-mail automatisk. Vi kan konfigurere vores mailingfunktion ved hjælp af VBA makroer. Så ved at bruge VBA makro kan vi sende en e-mail til flere brugere på samme tid. Vi skal have Outlook installeret på vores enhed for at sende e-mails automatisk med en makro. Da den kode, som vi vil indsætte, vil bruge Outlook til at sende e-mails til modtagerne.

Download arbejdsbog til øvelser

Du kan downloade arbejdsbogen til øvelser her.

Send e-mail automatisk.xlsm

3 egnede eksempler på Excel-makro til automatisk at sende e-mail automatisk

Igennem hele denne artikel vil vi demonstrere 3 passende eksempler på brug af excel-makro til at sende en e-mail automatisk til modtagerne. Før vi begynder at illustrere eksemplet, skal vi rette en ting i vores excel-ark. Gennemfør nedenstående trin, før du anvender makro til at sende e-mail automatisk.

TRIN:

  • Først skal du gå til fanen Udvikler . Vælg den indstilling Visual Basic .

  • Derefter skal du gå til Værktøj fanen og vælg indstillingen Referencer .

  • En ny dialogboks med navnet ' Referencer - VBAProject ' åbnes.
  • Endelig skal du markere indstillingen ' Microsoft Office 16.0 Objektbibliotek ' og klik på OK .

1. Anvend Excel VBA-makro til automatisk at sende e-mail baseret på celleværdi

Først og fremmest vil vi anvende excel VBA makro for at sende en e-mail automatisk baseret på en bestemt celleværdi i vores datasæt. For at illustrere dette eksempel bruger vi følgende datasæt. Vi skriver en kode, der sender en e-mail automatisk, hvis celleværdien i celle D6 er større end 400 .

Lad os se, hvordan du udfører denne handling.

TRIN:

  • Til at begynde med, højre - klik på arket ' Baseret på celle '.
  • Vælg desuden indstillingen ' Se kode '.

  • Ovenstående handling vil åbne en tom VBA kodevinduet for det pågældende regneark. En anden måde at åbne kodevinduet på er ved at trykke på Alt + F11 .
  • Skriv desuden følgende kode i kodevinduet:
 Dim rg As Range Private Sub Worksheet_Change(ByVal Target As Range) On Error Resume Next If Target.Cells.Count> 1 Then Exit Sub Set rg = Intersect(Range("D6"), Target) If rg Is Nothing Then Exit Sub If rg Is Nothing Then Exit Sub If IsNumeric(Target.Value) And Target.Value> 400 Then Call send_mail_outlook End If End If End Sub Sub Sub send_mail_outlook() Dim z As Object Dim y As Object Dim b As String Set z =CreateObject("Outlook.Application") Set y = z.CreateItem(0) b = "Hello!" & vbNewLine & vbNewLine & vbNewLine & _ "Håber du har det godt" & vbNewLine & _ "Besøg vores hjemmeside Exceldemy" On Error Resume Next With y .To = "Address" .cc = "" .BCC = "" .Subject = "send mail baseret på celleværdi" .Body = b .Display End With On Error GoTo 0 Set y = Nothing Set z = Nothing End Sub 
  • Klik derefter på Kør knappen, eller tryk på F5 for at køre koden.

  • En ny dialogboks med navnet Makroer vil blive vist.
  • Herefter, i den Makronavn feltet vælge makroen ' send_mail_outlook '.
  • Klik nu på den Kør knap.

  • Endelig, fra nu af, når celleværdien i celle D6> 400 en e-mail i Outlook vil blive genereret automatisk med specifikke modtagere. Vi skal blot klikke på Send knappen for at sende e-mailen.

Læs mere: Automatisk sende e-mails fra Excel baseret på celleindhold (2 metoder)

2. Automatisk afsendelse af e-mail baseret på forfaldsdato med VBA-makro

I den anden metode vil vi bruge Excel VBA makro til at sende en e-mail automatisk, hvis forfaldsdatoen for et projekt er tæt på. Dette er noget som en påmindelse. Vi bruger følgende datasæt til at illustrere dette eksempel. Datasættet indeholder e-mails fra forskellige sælgere, meddelelser og forfaldsdatoen for deres projekt.

Følg nedenstående trin for at udføre denne metode.

TRIN:

  • Højreklik først på ark Dato .
  • Vælg derefter indstillingen ' Se kode '.

  • Den åbner en tom VBA kodevinduet for det aktive regneark. Vi kan også trykke på Alt + F11 for at få dette kodevindue.
  • Indsæt derefter følgende kode i dette kodevindue:
 Public Sub Based_on_Date() Dim aRgDate As Range Dim aRgSend As Range Dim aRgText As Range Dim aRgDone As Range Dim aOutApp As Object Dim aMailItem As Object Dim aLastRow As Long Dim CrLf As String Dim aMailBody As String Dim zRgDateVal As String Dim zRgSendVal As String Dim aMailSubject As String Dim j As Long On Error Resume Next Set aRgDate = Application.InputBox("vælg kolonnen med forfaldsdatodate:", _ "Send Mail Base on Date", , , , , , , , , 8) If aRgDate Is Nothing Then Exit Sub Set aRgSend = Application.InputBox("select the email recipients column:", _ "Send Mail Base on Date", , , , , , , , 8) If aRgSend Is Nothing Then Exit Sub Set aRgText = Application.InputBox("Select the content column of email:", _ "Send Mail Base on Date", , , , , , , , , 8) If aRgText Is Nothing Then Exit Sub aLastRow =aRgDate.Rows.Count Set aRgDate = aRgDate(1) Set aRgSend = aRgSend(1) Set aRgText = aRgText(1) Set aOutApp = CreateObject("Outlook.Application") For j = 1 To aLastRow zRgDateVal = "" zRgDateVal = aRgDate.Offset(j - 1).Value If zRgDateVal "" Then If CDate(zRgDateVal) - Date 0 Then zRgSendVal = aRgSend.Offset(j - 1).Value aMailSubject = aRgText.Offset(j - 1).Value & " on " & zRgDateVal CrLf= " 

" aMailBody = aMailBody = aMailBody & "Hello " & zRgSendVal & CrLf aMailBody = aMailBody & "Message: " & aRgText.Offset(j - 1).Value & CrLf aMailBody = aMailBody & "" Set aMailItem = aOutApp.CreateItem(0) With aMailItem .Subject = aMailSubject .To = zRgSendVal .HTMLBody = aMailBody .Display End With Set aMailItem = Nothing End If End If Next Set aOutApp = Nothing EndUnder

  • Brug nu den Kør knappen eller på F5 for at køre koden.

  • Der vises en ny dialogboks.
  • Vælg derefter kolonneintervallet for forfaldsdato i indtastningsfeltet i denne dialogboks D$5:$D$9 Klik derefter på OK .

  • Der vises endnu en dialogboks.
  • Vælg desuden kolonneområdet i indtastningsfeltet B$5:$B$9 der indeholder e-mail-adresserne, og klik på OK .

  • Desuden vises endnu et vindue. Vælg beskedområdet $C$5:$C$9 i indtastningsfeltet i popvinduet.

  • I sidste ende kan vi se resultater som det følgende billede. Vi får 3 e-mails, der automatisk oprettes i 3 forskellige vinduer af Outlook Dette vil ikke oprette post til de to første e-mail-adresser. Fordi forfaldsdatoen for disse to projekter er overskredet.

Læs mere: Sådan sendes automatisk e-mail fra Excel baseret på dato automatisk

Lignende læsninger

  • [Løst]: Del arbejdsmappe vises ikke i Excel (med nemme trin)
  • Sådan sender du e-mail fra Excel-listen (2 effektive måder)
  • Sådan sender du et redigerbart Excel-regneark via e-mail (3 hurtige metoder)
  • Makro til at sende e-mail fra Excel (5 egnede eksempler)
  • Makro til at sende e-mail fra Excel med krop (3 nyttige tilfælde)

3. Brug Excel-makro til automatisk at sende e-mail med vedhæftede filer

I det sidste eksempel vil vi se, hvordan vi kan udvikle en excel-makro til automatisk at sende en e-mail med vedhæftede filer. Antag, at vi har en vedhæftet fil på følgende billede. Vi ønsker at sende denne vedhæftet fil via en e-mail ved hjælp af excel VBA makro. For at gøre dette har vi brug for stien til denne excel-fil. Her er trinene til dette:

  • Vælg filen ' Vedhæftede fil.xlsx ' '.
  • Klik på indstillingen ' Kopier sti '.

  • Så stien til den fil, som vi får:
E:\Exceldemy\Attachment.xlsx

Vi indsætter denne sti i vores makrokode for at sende denne fil via e-mail. Følg nedenstående trin for at gøre dette.

TRIN:

  • Først skal du gå til Udvikler fanen og vælg indstillingen Visual Basic .

  • Et nyt vindue med navnet ' Projekt - VBAProject vil blive åbnet '.
  • For det andet, højreklik på på arkets navn.
  • Vælg derefter Indsæt > Modul .

  • Ovenstående kommando vil åbne en tom VBA
  • For det tredje skal du skrive følgende kode i dette modul:
 Sub send_Email_complete() Dim MyOutlook As Object Set MyOutlook = CreateObject("Outlook.Application") Dim MyMail As Object Set MyMail = MyOutlook.CreateItem(olMailItem) MyMail.To = "[email protected]" MyMail.cc = "[email protected]" MyMail.BCC = "[email protected]" MyMail.Subject = "Sending Email with VBA." MyMail.Body = "This is a Sample Mail." Attached_File = "E:\Exceldemy\Attachment.xlsx"MyMail.Attachments.Add Attached_File MyMail.send End Sub 
  • Tryk derefter på F5 eller klik på tasten Kør knappen for at køre koden.

  • Til sidst sender koden den vedhæftede fil til de angivne e-mails i koden. Koden sender e-mails ved at Outlook Så klik på den Tillad knappen for at lade Outlook sende den vedhæftede fil til de angivne e-mails.

Læs mere: Sådan anvendes makro til at sende e-mail fra Excel med vedhæftede filer

Konklusion

Afslutningsvis viser denne artikel 3 eksempler på brug af excel VBA makro for at sende mails automatisk. Download prøvearket i denne artikel for at afprøve dine færdigheder. Hvis du har spørgsmål, kan du skrive en kommentar i feltet nedenfor. Vores team vil forsøge at svare på din besked så hurtigt som muligt. Hold øje med flere opfindsomme Microsoft Excel løsninger i fremtiden.

Hugh West er en meget erfaren Excel-træner og analytiker med over 10 års erfaring i branchen. Han har en bachelorgrad i regnskab og finans og en kandidatgrad i Business Administration. Hugh har en passion for undervisning og har udviklet en unik undervisningstilgang, der er nem at følge og forstå. Hans ekspertviden om Excel har hjulpet tusindvis af studerende og fagfolk verden over med at forbedre deres færdigheder og udmærke sig i deres karriere. Gennem sin blog deler Hugh sin viden med verden og tilbyder gratis Excel-tutorials og onlinetræning for at hjælpe enkeltpersoner og virksomheder med at nå deres fulde potentiale.