Så här skickar du e-postmeddelanden från ett Excel-kalkylblad med VBA-skript
Annons
Att skicka e-postmeddelanden 5 sätt att skriva professionella e-postmeddelanden som sparar tid och ansträngning 5 sätt att skriva professionella e-postmeddelanden som sparar tid och ansträngning Det är en färdighet att veta hur man skriver professionella e-postmeddelanden som sparar tid och får svar. Låt dessa e-postmallar hjälpa dig. Läs mer från Microsoft Excel kräver bara några enkla skript. Lägg till denna funktionalitet i dina kalkylblad och du kan verkligen förbättra hur mycket du kan göra i Excel.
Lås upp fuskbladet "Essential Excel Formulas" nu!
Detta kommer att registrera dig för vårt nyhetsbrev
Ange din e-postlåsning Läs vår sekretesspolicyVi har täckt många fantastiska Excel-makron, som kan utföra 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 kalkylrapport med all din PC-information.
Föredrar du att titta på den här självstudien som en video? Vi har dig täckt!
Varför skicka e-post från Excel?
Det finns många skäl till varför du kanske vill skicka ett e-postmeddelande frå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 görs. Eller så kan du ha ett kalkylblad med kontakter och du vill skicka ett e-postmeddelande till alla samtidigt.
Du tänker antagligen att skripta en e-post som sänds från Excel kommer att bli komplicerad. Det är inte fallet alls.
Tekniken i den här artikeln kommer att använda en funktion som har funnits i Excel VBA under lång tid, Collaboration Data Objects (CDO).
CDO är en meddelandekomponent som används i Windows sedan mycket tidiga generationer av OS. Det kallades tidigare CDONTS och ersattes sedan med Windows 2000 och XP med ”CDO för Windows 2000”. Denna komponent ingår redan i din VBA-installation i Microsoft Word eller Excel och är redo att användas.
Att använda komponenten gör det mycket 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 ut ett e-postmeddelande som kommer att leverera resultaten från en specifik Excel-cell.
Steg 1: Skapa en VBA-makro
Det första steget är att gå till fliken Excel Developer.
Klicka på Infoga i rutan Kontroller på fliken Utvecklare och välj sedan en kommandoknapp.
Rita det i arket och skapa sedan ett nytt makro för det genom att klicka på makron i utvecklarbandet.
När du klickar på knappen Skapa öppnar den VBA-redigeraren.
Lägg till referensen till CDO-biblioteket genom att navigera till Verktyg > Referenser i redigeraren.
Rulla ner listan tills du hittar Microsoft CDO för Windows 2000-biblioteket . Markera kryssrutan och klicka på OK .
När du klickar på OK noterar du namnet på den funktion 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 även om många av fälten är valfria krävs fältet Från och till .
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 coola med detta är att du kan skapa upp alla strängar du vill anpassa ett fullständigt e-postmeddelande och tilldela det till strBody- variabeln.
Sätt ihop komponenterna i meddelandet genom att använda & strängen för att infoga data från något av Microsoft Excel-bladen direkt i e-postmeddelandet, precis som visas ovan.
Steg 3: Konfigurera CDO för att använda en extern SMTP
Nästa kodavsnitt ä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 icke-SSL-installation via Gmail. CDO kan SSL, men det ligger utanför denna artikel. Om du behöver använda SSL kan den här avancerade koden i Github hjälpa till.
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
Steg 4: Slutför CDO-installationen
Nu när du har konfigurerat anslutningen till SMTP-servern för att skicka e-postmeddelandet behöver du bara fylla i lämpliga fält för CDO_Mail-objektet och utfärda kommandot Skicka .
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äkerhetsvarningsmeddelanden, vilket kan hända när du använder Outlook-postobjektet.
CDO sätter helt enkelt ihop e-postmeddelandet och använder dina SMTP-serverns anslutningsinformation för att avbryta meddelandet. Det är det enklaste sättet att integrera e-post i Microsoft Word eller Excel VBA-skript.
För att ansluta din kommandoknapp till det här skriptet, gå till kodredigeraren och klicka på Sheet1 för att se VBA-koden för det kalkylbladet.
Skriv namnet på funktionen där du klistrat in skriptet ovan.
Så här såg meddelandet ut som jag fick i min inkorg:
Obs! Om du får ett fel 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 som anges under 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 vilket fall är det vettigt att automatisera processen 5 Resurser för Excel-makron för att automatisera dina kalkylblad 5 Resurser för Excel-makron för att automatisera dina kalkylblad Söka efter Excel-makron? Här är fem webbplatser som har det du letar efter. Läs mer .
För att göra det måste du göra en ändring av makroen. Gå till Visual Basic Editor och kopiera och klistra in hela koden vi sätter ihop.
Välj sedan ThisWorkbook från projekthierarkin .
Från de två rullgardinsfälten högst upp i kodfönstret, välj Arbetsbok och välj Öppna i rullgardinsmenyn Metoder.
Klistra in e-postskriptet ovan i Private Sub Workbook_Open () .
Detta kör makro när du öppnar Excel-filen.
Öppna sedan Uppgiftsplanering .
Du kommer att använda det här verktyget för att be Windows att öppna kalkylbladet automatiskt med regelbundna intervall, vid vilken tidpunkt ditt makro kommer att initieras och skicka e-postmeddelandet.
Välj Skapa grundläggande uppgift ... från Åtgärd- menyn och arbeta dig igenom guiden tills du kommer till skärmen Åtgärd .
Välj Starta ett program och klicka på Nästa .
Använd knappen Bläddra för att hitta Microsoft Excels plats på din dator, eller kopiera och klistra in sökvägen i fältet Program / skript .
Ange sedan sökvägen till ditt Microsoft Excel-dokument i fältet Lägg till argument .
Slutför guiden, så kommer din schemaläggning att vara på plats.
Det är värt att köra ett test genom att schemalägga åtgärden Hur man tömmer papperskorgen automatiskt på ett schema och frigör bortkastat utrymme Hur man tömmer papperskorgen automatiskt på ett schema och frigör avfallsutrymme om du inte tömmer återanvändningen regelbundet Bin, det kan slösa bort gigabyte utrymme på din datadisk. Men nu kan Windows 10 tömma det automatiskt enligt ett schema. Läs mer i några minuter i framtiden och ändra sedan uppgiften när du kan bekräfta att den fungerar.
Obs! Du kanske måste justera dina Trust Center-inställningar för att säkerställa att makroen fungerar korrekt.
För att göra det öppnar du kalkylbladet och navigerar till Arkiv > Alternativ > Trust Center .
Härifrån klickar du på Inställningar för Trust Center och ställ in radioratten på nästa skärm för att aldrig visa information om blockerat innehåll .
Få Microsoft Excel att fungera för dig
Microsoft Excel är ett otroligt kraftfullt verktyg, men att lära sig att få ut det mesta kan vara lite skrämmande. Om du verkligen vill behärska programvaran måste du vara bekväm med VBA, och det är ingen liten uppgift.
Resultaten talar emellertid för sig själva. Med lite VBA-upplevelse under bältet kan du snart få Microsoft Excel att utföra grundläggande uppgifter automatiskt, vilket ger dig mer tid att koncentrera dig på mer pressande frågor.
Det tar tid att bygga upp expertis med VBA, men du kommer snart att se frukterna på ditt arbete om du kan hålla fast vid det.
En bra plats att börja med är vår auktoritiva handledning om att använda VBA i Excel En nybörjarhandledning om att skriva VBA-makron i Excel (och varför du borde lära dig) En nybörjarhandledning om att skriva VBA-makron i Excel (och varför du borde lära dig) Om du använder Excel regelbundet är det värt att lära sig att skapa VBA-makron och få tillgång till många fler funktioner och funktioner. Läs mer . När du är klar med det kommer det här enkla skriptet för att skicka e-post från Excel att känna som barns lek.
Utforska mer om: E-posttips, Microsoft Excel, Microsoft Office-tips, programmering, Visual Basic-programmering.