Sådan sender du e -mails fra et Excel -regneark ved hjælp af VBA -scripts

Sådan sender du e -mails fra et Excel -regneark ved hjælp af VBA -scripts

For at sende e -mails fra Microsoft Excel kræves kun et par enkle scripts. Føj denne funktionalitet til dine regneark, og du kan virkelig forbedre, hvor meget du kan opnå i Excel.





Vi har dækket en masse flotte Excel -makroer, som kan udføre de samme ting, VBA -scripts kan, men uden behov for programmeringskendskab. Men der er mange avancerede ting, du kun kan gøre med VBA, som at oprette en regnearksrapport med alle dine pc -oplysninger.





Foretrækker du at se denne vejledning som en video? Vi har dækket dig!





Hvorfor sende e -mail fra Excel?

Der er mange grunde til, at du måske vil sende en e -mail indefra Microsoft Excel.

Måske har du personale, der opdaterer dokumenter eller regneark ugentligt, og du vil gerne modtage en e -mail -meddelelse om, hvornår disse opdateringer er udført. Eller du har måske et regneark med kontakter, og du vil sende en e -mail til dem alle på én gang.



Du tror sikkert, at scripting af en e -mailudsendelse fra Excel bliver kompliceret. Sådan er det slet ikke.

Teknikken i denne artikel vil gøre brug af en funktion, der har været tilgængelig i Excel VBA i lang tid, Samarbejdsdataobjekter (CDO).





CDO er en beskedkomponent, der bruges i Windows siden meget tidlige generationer af operativsystemet. Det plejede at blive kaldt CDONTS, og derefter med fremkomsten af ​​Windows 2000 og XP blev det erstattet med 'CDO til Windows 2000'. Denne komponent er allerede inkluderet i din VBA -installation i Microsoft Word eller Excel og er klar til brug.

Brug af komponenten gør det ekstremt let at sende e -mails fra Windows -produkter med VBA. I dette eksempel bruger du CDO -komponenten i Excel til at sende en e -mail, der leverer resultaterne fra en bestemt Excel -celle.





Trin 1: Opret en VBA -makro

Det første trin er at gå til fanen Excel Developer.

Klik på på fanen Udvikler Indsæt i boksen Kontroller, og vælg derefter en kommandoknap.

Tegn det ind i arket, og opret derefter en ny makro til det ved at klikke på Makroer i udviklerbåndet.

Når du klikker på skab knappen, åbner den VBA -editoren.

Tilføj referencen til CDO -biblioteket ved at navigere til Værktøjer > Referencer i redaktøren.

Rul ned på listen, indtil du finder Microsoft CDO til Windows 2000 -bibliotek . Marker afkrydsningsfeltet, og klik på Okay .

Når du klikker Okay , noter navnet på den funktion, hvor du indsætter scriptet. Du får brug for det senere.

Trin 2: Konfigurer CDO'en 'Fra' og 'Til' felter

For at gøre dette skal du først oprette mailobjekterne og konfigurere alle de felter, der er nødvendige for at sende e -mailen.

Husk, at selvom mange af felterne er valgfrie, er Fra og Til felter er påkrævet.

hvordan man spiller gamle pc -spil på Windows 10
Dim CDO_Mail As Object
Dim CDO_Config As Object
Dim SMTP_Config As Variant
Dim strSubject As String
Dim strFrom As String
Dim strTo As String
Dim strCc As String
Dim strBcc As String
Dim strBody As String
strSubject = 'Results from Excel Spreadsheet'
strFrom = 'rdube02@gmail.com'
strTo = 'rdube02@gmail.com'
strCc = ''
strBcc = ''
strBody = 'The total results for this quarter are: ' & Str(Sheet1.Cells(2, 1))

Det fede ved dette er, at du kan oprette enhver streng, du vil tilpasse en fuld e -mail -besked og tildele den til strBody variabel.

Del komponenterne i meddelelsen sammen ved hjælp af & streng for at indsætte data fra et hvilket som helst af Microsoft Excel -arkene direkte i e -mail -beskeden, ligesom vist ovenfor.

Trin 3: Konfigurer CDO til at bruge en ekstern SMTP

Det næste afsnit af koden er, hvor du vil konfigurere CDO til at bruge en ekstern SMTP -server til at sende e -mailen.

Dette eksempel er en ikke-SSL-opsætning via Gmail. CDO er i stand til SSL, men det er uden for denne artikels anvendelsesområde. Hvis du skal bruge SSL, er dette avanceret kode i Github kan hjælpe.

Set CDO_Mail = CreateObject('CDO.Message')
On Error GoTo Error_Handling
Set CDO_Config = CreateObject('CDO.Configuration')
CDO_Config.Load -1
Set SMTP_Config = CDO_Config.Fields
With SMTP_Config
.Item('http://schemas.microsoft.com/cdo/configuration/sendusing') = 2
.Item('http://schemas.microsoft.com/cdo/configuration/smtpserver') = 'smtp.gmail.com'
.Item('http://schemas.microsoft.com/cdo/configuration/smtpauthenticate') = 1
.Item('http://schemas.microsoft.com/cdo/configuration/sendusername') = 'email@website.com'
.Item('http://schemas.microsoft.com/cdo/configuration/sendpassword') = 'password'
.Item('http://schemas.microsoft.com/cdo/configuration/smtpserverport') = 25
.Item('http://schemas.microsoft.com/cdo/configuration/smtpusessl') = True
.Update
End With
With CDO_Mail
Set .Configuration = CDO_Config
End With

Trin 4: Afslut CDO -opsætningen

Nu hvor du har konfigureret forbindelsen til SMTP -serveren til afsendelse af e -mailen, skal du blot udfylde de relevante felter for CDO_Mail -objekt , og udsted Sende kommando.

Sådan gør du det:

CDO_Mail.Subject = strSubject
CDO_Mail.From = strFrom
CDO_Mail.To = strTo
CDO_Mail.TextBody = strBody
CDO_Mail.CC = strCc
CDO_Mail.BCC = strBcc
CDO_Mail.Send
Error_Handling:
If Err.Description '' Then MsgBox Err.Description

Der vil ikke være nogen pop-up-bokse eller sikkerhedsadvarselsmeddelelser, som kan ske, når du anvender Outlook-postobjektet.

CDO sammensætter simpelthen e -mailen og bruger dine SMTP -serverforbindelsesdetaljer til at slukke beskeden. Det er den nemmeste måde at indarbejde e -mail i Microsoft Word eller Excel VBA -scripts.

For at forbinde din kommandoknap til dette script, skal du gå ind i kodeeditoren og klikke på Ark 1 for at se VBA -koden for det pågældende regneark.

Indtast navnet på den funktion, hvor du indsatte scriptet ovenfor.

sjove ting at lave på zoom

Sådan så meddelelsen ud, som jeg modtog i min indbakke:

Bemærk : Hvis du modtager en fejl, der læser Transporten kunne ikke oprette forbindelse til serveren , sørg for at du har indtastet det korrekte brugernavn, adgangskode, SMTP -server og portnummer i kodelinjerne nedenfor Med SMTP_Config .

Tag det videre og automatiser hele processen

Det er godt og godt at kunne sende e -mail fra Excel med et tryk på en knap. Men du vil måske regelmæssigt bruge denne funktionalitet, i hvilket tilfælde det ville være fornuftigt at automatisere processen.

For at gøre det skal du foretage en ændring af makroen. Gå til Visual Basic Editor, og kopier og indsæt hele koden, vi har sat sammen.

Vælg derefter Denne arbejdsbog fra Projekt hierarki.

Vælg fra de to rullemenuer øverst i kodevinduet Arbejdsbog og vælg Åben fra rullemenuen Metoder.

Indsæt e -mail -scriptet ovenfor i Private Sub Workbook_Open () .

Dette kører makroen, når du åbner Excel -filen.

Åbn derefter op Opgaveplanlægger .

Du vil bruge dette værktøj til at bede Windows om automatisk at åbne regnearket med jævne mellemrum, hvorefter din makro vil blive startet og sende e -mailen.

Vælg Opret grundlæggende opgave ... fra Handling menu, og arbejd dig igennem guiden, indtil du når Handling skærm.

Vælg Start et program og klik på Næste .

Brug Gennemse -knappen for at finde Microsoft Excel -placering på din computer, eller kopier og indsæt stien i Program/script Mark.

Indtast derefter stien til dit Microsoft Excel -dokument i Tilføj argumenter Mark.

Fuldfør guiden, og din planlægning er på plads.

Det er værd at køre en test ved at planlægge handlingen i et par minutter i fremtiden og derefter ændre opgaven, når du kan bekræfte, at den fungerer.

Bemærk : Du skal muligvis justere dine Trust Center -indstillinger for at sikre, at makroen kører korrekt.

For at gøre det skal du åbne regnearket og navigere til Fil > Muligheder > Tillidscenter .

Herfra skal du klikke Trust Center -indstillinger , og på den næste skærm indstilles radioskiven til Vis aldrig oplysninger om blokeret indhold .

Få Microsoft Excel til at fungere for dig

Microsoft Excel er et utroligt kraftfuldt værktøj, men det kan være lidt skræmmende at lære at få mest muligt ud af det. Hvis du virkelig vil mestre softwaren, skal du være det komfortabel med VBA , og det er ikke en lille opgave.

hvordan man ser aldersbegrænset youtube

Resultaterne taler dog for sig selv. Med lidt VBA -oplevelse under dit bælte kan du snart få Microsoft Excel til at udføre grundlæggende opgaver automatisk, hvilket giver dig mere tid til at koncentrere dig om mere presserende sager.

Det tager tid at opbygge ekspertise med VBA, men du vil snart se frugterne af dit arbejde, hvis du kan holde til det.

Et godt sted at starte er vores autoritative tutorial om brug af VBA i Excel . Når du er færdig med det, vil dette enkle script til at sende e -mails fra Excel føles som en leg.

Del Del Tweet E -mail Canon vs Nikon: Hvilket kameramærke er bedre?

Canon og Nikon er de to største navne i kameraindustrien. Men hvilket mærke tilbyder den bedre serie af kameraer og objektiver?

Læs Næste
Relaterede emner
  • Produktivitet
  • Programmering
  • Tips til e -mail
  • Programmering
  • Visual Basic programmering
  • Microsoft Excel
  • Microsoft Office -tip
Om forfatteren Ryan Dube(942 artikler udgivet)

Ryan har en bachelorgrad i elektroteknik. Han har arbejdet 13 år inden for automationsteknik, 5 år inden for IT og er nu Apps Engineer. Tidligere administrerende redaktør for MakeUseOf har han talt på nationale konferencer om datavisualisering og er blevet vist på nationalt tv og radio.

Mere fra Ryan Dube

Abonner på vores nyhedsbrev

Tilmeld dig vores nyhedsbrev for at få tekniske tips, anmeldelser, gratis e -bøger og eksklusive tilbud!

Klik her for at abonnere