Hur man skickar e -post från ett Excel -kalkylblad med hjälp av VBA -skript

Hur man skickar e -post från ett Excel -kalkylblad med hjälp av VBA -skript

För att skicka e -post från Microsoft Excel krävs bara några enkla skript. Lägg till den här funktionen i dina kalkylblad så kan du verkligen förbättra hur mycket du kan åstadkomma i Excel.





Vi har täckt många fantastiska Excel -makron som kan åstadkomma samma saker som VBA -skript kan, men utan behov av programmeringskunskap. Men det finns många avancerade saker du bara kan göra med VBA, som att skapa en kalkylarkrapport med all din PC -information.





Vill du se den här självstudien som en video? Vi har täckt dig!





Varför skicka e -post från Excel?

Det finns många anledningar till att du kanske vill skicka ett e -postmeddelande inifrån Microsoft Excel.

Kanske har du personal som uppdaterar dokument eller kalkylblad varje vecka, och du vill få ett e -postmeddelande om när dessa uppdateringar är klara. Eller så kan du ha ett kalkylblad med kontakter och du vill skicka ett e -postmeddelande till dem alla samtidigt.



Du tror antagligen att det kommer att bli komplicerat att skripta en e -postutsändning från Excel. Så är det inte alls.

Tekniken i den här artikeln kommer att använda en funktion som har varit tillgänglig i Excel VBA under lång tid, Samarbetsdataobjekt (CDO).





CDO är en meddelandekomponent som används i Windows sedan mycket tidiga generationer av operativsystemet. Det brukade kallas CDONTS, och sedan med tillkomsten av Windows 2000 och XP ersattes det med 'CDO för Windows 2000'. Denna komponent ingår redan i din VBA -installation i Microsoft Word eller Excel och är klar att användas.

Att använda komponenten gör det extremt enkelt att skicka e -post från Windows -produkter med VBA. I det här exemplet använder du CDO -komponenten i Excel för att skicka ett e -postmeddelande som kommer att leverera resultaten från en specifik Excel -cell.





Steg 1: Skapa ett VBA -makro

Det första steget är att gå till fliken Excel -utvecklare.

Klicka på på fliken Utvecklare Föra in i rutan Kontroller och välj sedan en kommandoknapp.

Rita in det i arket och skapa sedan ett nytt makro för det genom att klicka på Makron i utvecklarbandet.

När du klickar på Skapa -knappen öppnas VBA -redigeraren.

Lägg till referensen till CDO -biblioteket genom att navigera till Verktyg > Referenser i redaktören.

Rulla ner i listan tills du hittar Microsoft CDO för Windows 2000 -biblioteket . Markera kryssrutan och klicka OK .

När du klickar OK , notera namnet på funktionen där du klistrar in skriptet. Du behöver det senare.

Steg 2: Ställ in CDO -fälten 'Från' och 'Till'

För att göra detta måste du först skapa e -postobjekten och ställa in alla fält som är nödvändiga för att skicka e -postmeddelandet.

Tänk på att medan många av fälten är valfria, är Från och Till fält krävs.

e -postmeddelanden som inte kommer igenom på surfplattan
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 fina med det här är att du kan skapa vilken sträng som helst som du vill anpassa ett fullständigt e -postmeddelande och tilldela det till strBody variabel.

Dela ihop komponenterna i meddelandet med hjälp av & sträng för att infoga data från alla Microsoft Excel -blad direkt i e -postmeddelandet, precis som visas ovan.

Steg 3: Konfigurera CDO för att använda en extern SMTP

Nästa avsnitt av kod är där du kommer att konfigurera CDO för att använda någon extern SMTP -server för att skicka e -postmeddelandet.

Detta exempel är en konfiguration som inte är SSL via Gmail. CDO kan SSL, men det är utanför tillämpningsområdet för denna artikel. Om du behöver använda SSL, detta avancerad kod i Github kan hjälpa.

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

Steg 4: Slutför CDO -installationen

Nu när du har konfigurerat anslutningen till SMTP -servern för att skicka e -postmeddelandet är allt du behöver göra att fylla i lämpliga fält för CDO_Mail -objekt , och utfärda Skicka kommando.

Så här gör du:

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 kommer inte att finnas några popup-rutor eller säkerhetsmeddelanden, som kan hända när du använder Outlook-postobjektet.

CDO sammanställer helt enkelt e -postmeddelandet och använder dina SMTP -serveranslutningsdetaljer för att avfyra meddelandet. Det är det enklaste sättet att införliva e -post i Microsoft Word- eller Excel VBA -skript.

För att ansluta din kommandoknapp till detta skript, gå till kodredigeraren och klicka på Ark 1 för att visa VBA -koden för det kalkylbladet.

Skriv namnet på funktionen där du klistrade in skriptet ovan.

hur man får handelskort steam

Så här såg meddelandet ut som jag fick i min inkorg:

Notera : Om du får ett felmeddelande som läser Transporten kunde inte ansluta till servern , se till att du har angett rätt användarnamn, lösenord, SMTP -server och portnummer i kodraderna nedan Med SMTP_Config .

Ta det vidare och automatisera hela processen

Det är bra och bra att kunna skicka e -post från Excel med en knapptryckning. Men du kanske vill använda den här funktionen regelbundet, i så fall skulle det vara vettigt att automatisera processen.

För att göra det måste du ändra makrot. Gå till Visual Basic Editor och kopiera och klistra in hela koden som vi satte ihop.

Välj sedan Denna arbetsbok från Projekt hierarki.

Välj från de två listrutorna högst upp i kodfönstret Arbetsbok och välj Öppen från rullgardinsmenyn Metoder.

Klistra in e -postskriptet ovan i Private Sub Workbook_Open () .

Detta kommer att köra makrot när du öppnar Excel -filen.

Öppna sedan Schemaläggaren .

Du kommer att använda det här verktyget för att be Windows att öppna kalkylarket automatiskt med jämna mellanrum, då kommer ditt makro att startas och skicka e -postmeddelandet.

Välj Skapa grundläggande uppgift ... från Handling menyn och arbeta dig igenom guiden tills du når Handling skärm.

Välj Starta ett program och klicka Nästa .

Använd Bläddra -knappen för att hitta Microsoft Excel -plats på din dator, eller kopiera och klistra in sökvägen i Program/manus fält.

Ange sedan sökvägen till ditt Microsoft Excel -dokument i Lägg till argument fält.

Slutför guiden så kommer din schemaläggning på plats.

Det är värt att köra ett test genom att schemalägga åtgärden i ett par minuter i framtiden och sedan ändra uppgiften när du kan bekräfta att den fungerar.

Notera : Du kan behöva justera dina Trust Center -inställningar för att se till att makrot fungerar korrekt.

För att göra det, öppna kalkylarket och navigera till Fil > alternativ > Trust Center .

Härifrån, klicka Trust Center -inställningar och ställ in radioratten på nästa skärm Visa aldrig information om blockerat innehåll .

Få Microsoft Excel att fungera för dig

Microsoft Excel är ett otroligt kraftfullt verktyg, men det kan vara lite skrämmande att lära sig hur man får ut det mesta av det. Om du verkligen vill behärska programvaran måste du vara det bekväm med VBA , och det är ingen liten uppgift.

gmail sök efter e -postmeddelanden med bilagor

Resultaten talar dock för sig själva. Med lite VBA -erfarenhet under ditt bälte kan du snart få Microsoft Excel att utföra grundläggande uppgifter automatiskt, vilket ger dig mer tid att koncentrera dig på mer angelägna frågor.

Det tar tid att bygga upp expertis med VBA, men du kommer snart att se frukterna av ditt arbete om du kan hålla dig till det.

En bra plats att börja är vår auktoritativa handledning om hur du använder VBA i Excel . När du är klar med det kommer det här enkla skriptet att skicka e -postmeddelanden från Excel att kännas som barns lek.

Dela med sig Dela med sig Tweet E-post Canon vs Nikon: Vilket kameramärke är bättre?

Canon och Nikon är de två största namnen i kameraindustrin. Men vilket märke erbjuder den bättre sortimentet av kameror och objektiv?

Läs Nästa
Relaterade ämnen
  • Produktivitet
  • Programmering
  • Tips för e -post
  • Programmering
  • Visual Basic programmering
  • Microsoft excel
  • Microsoft Office -tips
Om författaren Ryan Dube(942 artiklar publicerade)

Ryan har en kandidatexamen i elektroteknik. Han har arbetat 13 år inom automationsteknik, 5 år inom IT och är nu Apps Engineer. Han var tidigare chefredaktör för MakeUseOf och talade på nationella konferenser om datavisualisering och har presenterats på nationell TV och radio.

Mer från Ryan Dube

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e -böcker och exklusiva erbjudanden!

Klicka här för att prenumerera