Slik sender du e-post fra et Excel-regneark ved hjelp av VBA-skript
Annonse
Slik sender du e-post 5 måter å skrive profesjonelle e-poster som sparer tid og krefter 5 måter å skrive profesjonelle e-poster som sparer tid og krefter Det er en ferdighet å vite hvordan du skriver profesjonelle e-poster som sparer tid og får svar. La disse e-postmalene hjelpe deg. Les mer fra Microsoft Excel krever bare noen få enkle skript. Legg denne funksjonaliteten til regnearkene dine, og du kan virkelig forbedre hvor mye du kan oppnå i Excel.
Lås opp juksearket "Essential Excel Formulas" nå!
Dette vil registrere deg på vårt nyhetsbrev
Skriv inn låsen for e-postVi har dekket mange flotte Excel-makroer, som kan oppnå de samme tingene som VBA-skript kan, men uten behov for programmeringskunnskap. Men det er mange avanserte ting du bare kan gjøre med VBA, som å lage en regnearkrapport med all PC-informasjonen din.
Foretrekker du å se denne opplæringen som en video? Vi har deg dekket!
Hvorfor sende e-post fra Excel?
Det er mange grunner til at du kanskje vil sende en e-post fra Microsoft Excel.
Kanskje har du ansatte som oppdaterer dokumenter eller regneark hver uke, og du ønsker å motta en e-postvarsel om når disse oppdateringene er gjort. Eller du kan ha et regneark med kontakter, og du vil sende en e-post til dem alle samtidig.
Du tenker sannsynligvis at skripting av en e-post sendt fra Excel kommer til å bli komplisert. Det er ikke tilfelle i det hele tatt.
Teknikken i denne artikkelen vil benytte seg av en funksjon som har vært tilgjengelig i Excel VBA i lang tid, Collaboration Data Objects (CDO).
CDO er en meldingskomponent brukt i Windows siden veldig tidlige generasjoner av OS. Det het tidligere CDONTS, og ble deretter med bruk av Windows 2000 og XP erstattet med “CDO for Windows 2000”. Denne komponenten er allerede inkludert i VBA-installasjonen din i Microsoft Word eller Excel og er klar til bruk.
Å bruke komponenten gjør det svært enkelt å sende e-post fra Windows-produkter med VBA. I dette eksemplet bruker du CDO-komponenten i Excel til å sende ut en e-post som vil levere resultatene fra en spesifikk Excel-celle.
Trinn 1: Lag en VBA-makro
Det første trinnet er å gå til fanen Excel Developer.
I kategorien Utvikler klikker du på Sett inn i kontrollboksen og velger deretter en kommandoknapp.
Tegn det inn i arket, og lag deretter en ny makro for det ved å klikke på makroer i båndet Developer.
Når du klikker på Opprett- knappen, vil den åpne VBA-redigereren.
Legg til referansen til CDO-biblioteket ved å navigere til Verktøy > Referanser i redigereren.
Bla nedover listen til du finner Microsoft CDO for Windows 2000 Library . Merk av for boksen og klikk OK .
Når du klikker OK, noter du navnet på funksjonen der du limer inn skriptet. Du trenger det senere.
Trinn 2: Sett opp CDO “Fra” og “Til” felt
For å gjøre dette, må du først opprette e-postobjektene og sette opp alle feltene som er nødvendige for å sende e-posten.
Husk at selv om mange av feltene er valgfrie, er Fra og Til- felt påkrevd.
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 = " " strTo = " " strCc = "" strBcc = "" strBody = "The total results for this quarter are: " & Str(Sheet1.Cells(2, 1))
Det kule med dette er at du kan opprette en hvilken som helst streng du vil tilpasse en full e-postmelding og tilordne den til strBody- variabelen.
Del sammen delene av meldingen ved å bruke & -strengen til å sette inn data fra et av Microsoft Excel-arkene rett i e-postmeldingen, akkurat som vist ovenfor.
Trinn 3: Konfigurer CDO for å bruke en ekstern SMTP
Den neste delen av koden er der du vil konfigurere CDO til å bruke en hvilken som helst ekstern SMTP-server for å sende e-posten.
Dette eksemplet er et ikke-SSL-oppsett gjennom Gmail. CDO er i stand til SSL, men det er utenfor rammen for denne artikkelen. Hvis du trenger å bruke SSL, kan denne avanserte koden i Github hjelpe.
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") = " " .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
Trinn 4: Fullfør CDO-oppsettet
Nå som du har konfigurert tilkoblingen til SMTP-serveren for sending av e-posten, er alt du trenger å gjøre å fylle ut de aktuelle feltene for CDO_Mail-objektet, og utgi Send- kommandoen.
Slik gjø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
Det vil ikke være noen popup-bokser eller sikkerhetsvarslingsmeldinger, som kan skje når du bruker å bruke Outlook-postobjektet.
CDO setter ganske enkelt e-posten sammen og bruker SMTP-serverens tilkoblingsdetaljer for å avbryte meldingen. Det er den enkleste måten å integrere e-post i Microsoft Word eller Excel VBA-skript.
For å koble kommandoknappen til dette skriptet, gå inn i kodeditoren og klikk på Ark 1 for å se VBA-koden for det arbeidsarket.
Skriv inn navnet på funksjonen der du limte inn skriptet over.
Slik så meldingen ut som jeg mottok i innboksen:
Merk : Hvis du får en feil som leser Transporten kunne ikke koble til serveren, må du forsikre deg om at du har skrevet inn riktig brukernavn, passord, SMTP-server og portnummer i kodelinjene som er oppført under Med SMTP_Config .
Ta det videre og automatiser hele prosessen
Det er vel og bra å kunne sende e-post fra Excel ved å trykke på en knapp. Det kan imidlertid være lurt å bruke denne funksjonaliteten regelmessig, i hvilket tilfelle vil det være fornuftig å automatisere prosessen. 5 Ressurser for Excel-makroer for å automatisere regnearkene dine. 5 Ressurser for Excel-makroer for å automatisere regnearkene. Her er fem nettsteder som har det du leter etter. Les mer .
For å gjøre det, må du gjøre en endring i makroen. Gå til Visual Basic Editor og kopier og lim inn hele koden vi har satt sammen.
Velg deretter ThisWorkbook fra prosjekthierarkiet .
Velg arbeidsbok fra de to nedtrekksfeltene øverst i kodevinduet og velg Åpne fra rullegardinmenyen Metoder.
Lim inn e-postskriptet over i Private Sub Workbook_Open () .
Dette kjører makroen når du åpner Excel-filen.
Åpne deretter Oppgaveplanlegging .
Du kommer til å bruke dette verktøyet til å be Windows om å åpne regnearket automatisk med jevne mellomrom, på hvilket tidspunkt makroen din vil bli startet, og sende e-posten.
Velg Lag grunnleggende oppgave ... fra Handlingsmenyen og jobb deg gjennom veiviseren til du kommer til Handlingsskjermbildet .
Velg Start et program og klikk Neste .
Bruk Bla gjennom- knappen for å finne Microsoft Excels plassering på datamaskinen din, eller kopier og lim inn banen i Program / skript- feltet.
Angi deretter banen til Microsoft Excel-dokumentet i feltet Legg til argumenter .
Fullfør veiviseren, og planleggingen din vil være på plass.
Det er verdt å kjøre en test ved å planlegge handlingen Slik tømmer du papirkurven automatisk på et tidsplan og frigjør bortkastet plass Slik tømmer du papirkurven automatisk på et plan og frigjør søppelplass Hvis du ikke tømmer papirkurven regelmessig Kasse, det kan være å kaste bort gigabyte med plass på datastasjonen. Men nå kan Windows 10 tømme det automatisk på en timeplan. Les mer et par minutter fremover, og endre oppgaven når du kan bekrefte at den fungerer.
Merk : Det kan hende du må justere Trust Center-innstillingene for å sikre at makroen fungerer som den skal.
Dette gjør du ved å åpne regnearket og navigere til Fil > Valg > Tillitssenter .
Herfra klikker du på Innstillinger for tillitssenter, og angi radioskiven på neste skjermbilde til Aldri å vise informasjon om blokkerte innhold .
Få Microsoft Excel til å fungere for deg
Microsoft Excel er et utrolig kraftig verktøy, men å lære å få mest mulig ut av det kan være litt skremmende. Hvis du virkelig behersker programvaren, må du være komfortabel med VBA, og det er ingen liten oppgave.
Resultatene taler imidlertid for seg selv. Med litt VBA-erfaring under beltet, vil du snart kunne få Microsoft Excel til å utføre grunnleggende oppgaver automatisk, noe som gir deg mer tid til å konsentrere deg om mer presserende saker.
Det tar tid å bygge kompetanse med VBA, men du vil snart se fruktene av arbeidet ditt hvis du kan holde deg til det.
Et flott sted å starte er den autoritative opplæringen vår om bruk av VBA i Excel En nybegynnerveiledning for å skrive VBA-makroer i Excel (og hvorfor du bør lære) En nybegynnerveiledning for å skrive VBA-makroer i Excel (og hvorfor du bør lære) hvis du bruker Excel regelmessig er det verdt å lære å lage VBA-makroer og få tilgang til mange flere funksjoner og muligheter. Les mer . Når du er ferdig med det, vil dette enkle skriptet for å sende e-post fra Excel føles som barns lek.
Utforsk mer om: Tips for e-post, Microsoft Excel, Microsoft Office-tips, programmering, Visual Basic-programmering.