Slik sender du e -post fra et Excel -regneark ved hjelp av VBA -skript

Slik sender du e -post fra et Excel -regneark ved hjelp av VBA -skript

For å sende e -post fra Microsoft Excel trenger du bare noen få enkle skript. Legg til denne funksjonaliteten i regnearkene, og du kan virkelig forbedre hvor mye du kan oppnå i Excel.





Vi har dekket mange flotte Excel -makroer, som kan oppnå de samme tingene VBA -skript kan, men uten behov for programmeringskunnskap. Men det er mange avanserte ting du bare kan gjøre med VBA, som å lage en regnearksrapport med all din PC -informasjon.





Foretrekker du å se denne opplæringen som en video? Vi har dekket deg!





Hvorfor sende e -post fra Excel?

Det er mange grunner til at du vil sende en e -post fra Microsoft Excel.

Kanskje du har ansatte som oppdaterer dokumenter eller regneark ukentlig, og du vil motta en e -postmelding om når oppdateringene er gjort. Eller du kan ha et regneark med kontakter, og du vil sende en e -post til dem alle samtidig.



Du tror sannsynligvis at scripting av en e -postutsending fra Excel kommer til å bli komplisert. Det er ikke tilfelle i det hele tatt.

Teknikken i denne artikkelen vil gjøre bruk av en funksjon som har vært tilgjengelig i Excel VBA i lang tid, Samarbeidsdataobjekter (CDO).





CDO er en meldingskomponent som brukes i Windows siden veldig tidlige generasjoner av operativsystemet. Det pleide å hete CDONTS, og deretter med advent av Windows 2000 og XP ble det erstattet med 'CDO for Windows 2000'. Denne komponenten er allerede inkludert i VBA -installasjonen i Microsoft Word eller Excel og er klar til bruk.

Å bruke komponenten gjør det ekstremt 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 bestemt Excel -celle.





Trinn 1: Lag en VBA -makro

Det første trinnet er å gå til Excel Developer -fanen.

Klikk på Utvikler -fanen Sett inn i boksen Kontroller, og velg deretter en kommandoknapp.

Tegn det inn i arket, og lag deretter en ny makro for det ved å klikke på Makroer i utviklerbåndet.

Når du klikker på Skape -knappen, åpnes VBA -editoren.

Legg til referansen til CDO -biblioteket ved å navigere til Verktøy > Referanser i redaktøren.

Rull nedover listen til du finner Microsoft CDO for Windows 2000 -biblioteket . Merk av i ruten og klikk OK .

Når du klikker OK , noter navnet på funksjonen der du limer inn skriptet. Du trenger det senere.

Trinn 2: Sett opp CDO 'Fra' og 'Til' feltene

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 mens mange av feltene er valgfrie, er Fra og Til felt er obligatoriske.

hvordan koble airpods til android
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 fine med dette er at du kan lage hvilken som helst streng du vil tilpasse en fullstendig e -postmelding og tilordne den til strBody variabel.

Del komponentene i meldingen sammen ved å bruke & streng for å sette inn data fra et av Microsoft Excel -arkene rett inn i e -postmeldingen, akkurat som vist ovenfor.

Trinn 3: Konfigurer CDO til å bruke en ekstern SMTP

Den neste delen av koden er hvor du vil konfigurere CDO til å bruke en ekstern SMTP -server for å sende e -posten.

Dette eksemplet er et ikke-SSL-oppsett via Gmail. CDO er i stand til SSL, men det er utenfor omfanget av denne artikkelen. Hvis du trenger å bruke SSL, er dette avansert kode i Github kan 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') = '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

Trinn 4: Fullfør CDO -oppsettet

Nå som du har konfigurert tilkoblingen til SMTP -serveren for å sende e -posten, er alt du trenger å gjøre å fylle ut de riktige feltene for CDO_Mail -objekt , og utstede Sende kommando.

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 varsler om sikkerhet, som kan skje når du bruker Outlook-postobjektet.

CDO setter ganske enkelt sammen e -posten og bruker tilkoblingsdetaljene for SMTP -serveren for å utløse meldingen. Det er den enkleste måten å inkludere e -post i Microsoft Word- eller Excel VBA -skript.

For å koble kommandoknappen til dette skriptet, gå inn i kodeeditoren og klikk på Ark 1 for å se VBA -koden for det regnearket.

Skriv inn navnet på funksjonen der du limte inn skriptet ovenfor.

xbox one -kontrolleren fungerer ikke på pc

Slik så meldingen ut som jeg mottok i innboksen min:

Merk : Hvis du får en feilmelding som leser Transporten klarte ikke å koble til serveren , sørg for at du har angitt riktig brukernavn, passord, SMTP -server og portnummer i kodelinjene nedenfor Med SMTP_Config .

Ta det videre og automatiser hele prosessen

Det er vel og bra å kunne sende e -post fra Excel med et tastetrykk. Imidlertid vil du kanskje bruke denne funksjonaliteten regelmessig, i så fall ville det være fornuftig å automatisere prosessen.

For å gjøre dette må du gjøre en endring i makroen. Gå til Visual Basic Editor og kopier og lim inn hele koden vi setter sammen.

Velg deretter Denne arbeidsboken fra Prosjekt hierarki.

Velg de to nedtrekksfeltene øverst i kodevinduet Arbeidsbok og velg Åpen fra rullegardinmenyen Metoder.

Lim inn e -postskriptet ovenfor i Private Sub Workbook_Open () .

Dette vil kjøre makroen når du åpner Excel -filen.

Deretter åpner du opp Oppgaveplanlegger .

Du kommer til å bruke dette verktøyet til å be Windows om å åpne regnearket automatisk med jevne mellomrom, da vil makroen din starte og sende e -posten.

Plukke ut Lag grunnleggende oppgave ... fra Handling -menyen og gå deg gjennom veiviseren til du kommer til Handling skjerm.

Plukke ut Start et program og klikk Neste .

Bruke Bla gjennom -knappen for å finne posisjonen til Microsoft Excel på datamaskinen din, eller kopier og lim inn banen i Program/manus felt.

Skriv deretter inn banen til Microsoft Excel -dokumentet i Legg til argumenter felt.

Fullfør veiviseren, og planleggingen din er på plass.

Det er verdt å kjøre en test ved å planlegge handlingen i et par minutter i fremtiden, og deretter endre oppgaven når du kan bekrefte at den fungerer.

Merk : Du må kanskje justere Trust Center -innstillingene for å sikre at makroen fungerer som den skal.

For å gjøre dette, åpne regnearket og naviger til Fil > Alternativer > Tillitsenter .

Klikk herfra Innstillinger for Trust Center og på den neste skjermen, sett radiovelgeren til Vis aldri informasjon om blokkert innhold .

Få Microsoft Excel til å fungere for deg

Microsoft Excel er et utrolig kraftig verktøy, men det kan være litt skremmende å lære å få mest mulig ut av det. Hvis du virkelig vil mestre programvaren, må du være det komfortabel med VBA , og det er ingen liten oppgave.

hvordan slette filer på Android

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 det.

Et flott sted å starte er vår autoritative opplæring i bruk av VBA i Excel . Når du er ferdig med det, vil dette enkle skriptet for å sende e -post fra Excel føles som barns lek.

Dele Dele kvitring E -post Canon vs Nikon: Hvilket kameramerk er bedre?

Canon og Nikon er de to største navnene i kamerabransjen. Men hvilket merke tilbyr den bedre serien med kameraer og objektiver?

Les neste
Relaterte temaer
  • Produktivitet
  • Programmering
  • Tips til e -post
  • Programmering
  • Visual Basic programmering
  • Microsoft Excel
  • Microsoft Office -tips
Om forfatteren Ryan Dube(942 artikler publisert)

Ryan har en bachelorgrad i elektroteknikk. Han har jobbet 13 år innen automasjonsteknikk, 5 år innen IT, og er nå en Apps Engineer. En tidligere administrerende redaktør for MakeUseOf, han har talt på nasjonale konferanser om datavisualisering og har blitt omtalt på nasjonal TV og radio.

Mer fra Ryan Dube

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!

Klikk her for å abonnere