E-mails verzenden vanuit een Excel-spreadsheet met VBA-scripts

E-mails verzenden vanuit een Excel-spreadsheet met VBA-scripts

Voor het verzenden van e-mails vanuit Microsoft Excel zijn slechts een paar eenvoudige scripts nodig. Voeg deze functionaliteit toe aan uw spreadsheets en u kunt echt verbeteren hoeveel u in Excel kunt bereiken.





We hebben veel geweldige Excel-macro's behandeld, die dezelfde dingen kunnen bereiken met VBA-scripts, maar zonder de noodzaak van programmeerkennis. Maar er zijn veel geavanceerde dingen die u alleen met VBA kunt doen, zoals het maken van een spreadsheetrapport met al uw pc-informatie.





Bekijk je deze tutorial liever als video? We hebben je gedekt!





Waarom e-mail verzenden vanuit Excel?

Er zijn veel redenen waarom u misschien een e-mail wilt verzenden vanuit Microsoft Excel.

Misschien heeft u personeel dat wekelijks documenten of spreadsheets bijwerkt en wilt u een e-mailmelding ontvangen wanneer die updates zijn voltooid. Of misschien heeft u een spreadsheet met contacten en wilt u ze allemaal tegelijk een e-mail sturen.



U denkt waarschijnlijk dat het scripten van een e-mailuitzending vanuit Excel ingewikkeld zal zijn. Dat is helemaal niet het geval.

De techniek in dit artikel maakt gebruik van een functie die al heel lang beschikbaar is in Excel VBA, Samenwerkingsgegevensobjecten (CDO).





CDO is een berichtencomponent die in Windows wordt gebruikt sinds zeer vroege generaties van het besturingssysteem. Vroeger heette het CDONTS, en toen met de komst van Windows 2000 en XP, werd het vervangen door 'CDO voor Windows 2000'. Dit onderdeel is al opgenomen in uw VBA-installatie binnen Microsoft Word of Excel en is klaar voor gebruik.

Het gebruik van de component maakt het verzenden van e-mails vanuit Windows-producten met VBA uiterst eenvoudig. In dit voorbeeld gebruikt u de CDO-component in Excel om een ​​e-mail te verzenden die de resultaten van een specifieke Excel-cel levert.





Stap 1: Maak een VBA-macro

De eerste stap is om naar het tabblad Excel-ontwikkelaars te gaan.

Klik op het tabblad Ontwikkelaars op Invoegen in het vak Besturing en selecteer vervolgens een opdrachtknop.

Teken het in het blad en maak er vervolgens een nieuwe macro voor door op . te klikken Macro's in het lint voor ontwikkelaars.

Wanneer u op de klikt Creëren knop, wordt de VBA-editor geopend.

Voeg de verwijzing toe aan de CDO-bibliotheek door te navigeren naar Gereedschap > Referenties in de redactie.

Scroll door de lijst totdat je vindt Microsoft CDO voor Windows 2000-bibliotheek . Markeer het selectievakje en klik op Oke .

Wanneer u klikt Oke , noteer de naam van de functie waarin u het script plakt. Je hebt het later nodig.

Stap 2: Stel de CDO-velden 'Van' en 'Naar' in

Om dit te doen, moet u eerst de e-mailobjecten maken en alle velden instellen die nodig zijn om de e-mail te verzenden.

Houd er rekening mee dat hoewel veel van de velden optioneel zijn, de Van en Tot velden zijn verplicht.

extern bureaublad van Windows naar Linux
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))

Het leuke hiervan is dat je elke string kunt maken die je wilt om een ​​volledig e-mailbericht aan te passen en toe te wijzen aan de strLichaam variabel.

Voeg componenten van het bericht samen met behulp van de & string om gegevens van een van de Microsoft Excel-bladen rechtstreeks in het e-mailbericht in te voegen, net zoals hierboven weergegeven.

Stap 3: CDO configureren om een ​​externe SMTP te gebruiken

In het volgende gedeelte van de code configureert u CDO om een ​​externe SMTP-server te gebruiken om de e-mail te verzenden.

Dit voorbeeld is een niet-SSL-configuratie via Gmail. CDO is in staat tot SSL, maar dat valt buiten het bestek van dit artikel. Als u SSL moet gebruiken, is dit: geavanceerde code in Github kan helpen.

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

Stap 4: Voltooi de CDO-installatie

Nu u de verbinding met de SMTP-server voor het verzenden van de e-mail hebt geconfigureerd, hoeft u alleen nog maar de juiste velden voor de CDO_Mail-object , en geef de Versturen opdracht.

Hier is hoe je dat doet:

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

Er zullen geen pop-upvensters of beveiligingswaarschuwingen zijn, wat kan gebeuren wanneer u uw toevlucht neemt tot het gebruik van het Outlook-e-mailobject.

CDO stelt eenvoudig de e-mail samen en gebruikt uw SMTP-serververbindingsdetails om het bericht af te vuren. Het is de gemakkelijkste manier om e-mail op te nemen in Microsoft Word- of Excel VBA-scripts.

Om uw opdrachtknop aan dit script te koppelen, gaat u naar de code-editor en klikt u op Blad1 om de VBA-code voor dat werkblad te bekijken.

Typ de naam van de functie waarin u het bovenstaande script hebt geplakt.

hoeveel kost youtube premium family

Dit is hoe het bericht eruit zag dat ik in mijn inbox ontving:

Opmerking : Als u een foutmelding krijgt met de tekst Het transport kon geen verbinding maken met de server , zorg ervoor dat u de juiste gebruikersnaam, wachtwoord, SMTP-server en poortnummer hebt ingevoerd in de onderstaande coderegels Met SMTP_Config .

Ga verder en automatiseer het hele proces

Het is allemaal goed en wel om met één druk op de knop e-mail te kunnen versturen vanuit Excel. Het is echter mogelijk dat u deze functionaliteit regelmatig wilt gebruiken, in welk geval het zinvol zou zijn om het proces te automatiseren.

Om dit te doen, moet u een wijziging aanbrengen in de macro. Ga naar de Visual Basic Editor en kopieer en plak de volledige code die we hebben samengesteld.

Selecteer vervolgens Dit Werkboek van de Project hiërarchie.

Selecteer in de twee vervolgkeuzevelden boven aan het codevenster Werkboek en selecteer Open uit de vervolgkeuzelijst Methoden.

Plak het e-mailscript hierboven in Privé subwerkboek_Open() .

Hierdoor wordt de macro uitgevoerd wanneer u het Excel-bestand opent.

Open vervolgens Taakplanner .

U gaat deze tool gebruiken om Windows te vragen de spreadsheet met regelmatige tussenpozen automatisch te openen, waarna uw macro wordt gestart en de e-mail wordt verzonden.

Selecteer Basistaak maken... van de Actie menu en werk je een weg door de wizard totdat je de Actie scherm.

Selecteer Een programma starten en klik Volgende .

Gebruik de Bladeren om de locatie van Microsoft Excel op uw computer te vinden, of kopieer en plak het pad in de Programma/script veld.

Voer vervolgens het pad naar uw Microsoft Excel-document in de Argumenten toevoegen veld.

Voltooi de wizard en uw planning is klaar.

Het is de moeite waard een test uit te voeren door de actie een paar minuten in de toekomst te plannen en de taak vervolgens aan te passen zodra u kunt bevestigen dat deze werkt.

Opmerking : Mogelijk moet u uw instellingen voor het Vertrouwenscentrum aanpassen om ervoor te zorgen dat de macro correct wordt uitgevoerd.

Open hiervoor de spreadsheet en navigeer naar Bestand > Opties > Vertrouwenscentrum .

Klik vanaf hier op Instellingen vertrouwenscentrum en zet in het volgende scherm de radioknop op Toon nooit informatie over geblokkeerde inhoud .

Laat Microsoft Excel voor u werken

Microsoft Excel is een ongelooflijk krachtig hulpmiddel, maar het kan een beetje intimiderend zijn om te leren hoe u er het maximale uit kunt halen. Als je de software echt onder de knie wilt krijgen, moet je comfortabel met VBA , en dat is geen geringe opgave.

wat moet ik doen als mijn iphone vastzit op het Apple-logo?

De resultaten spreken echter voor zich. Met een beetje VBA-ervaring op zak, kun je Microsoft Excel binnenkort basistaken automatisch laten uitvoeren, zodat je meer tijd hebt om je te concentreren op meer dringende zaken.

Het kost tijd om expertise op te bouwen met VBA, maar je zult snel de vruchten van je werk zien als je je eraan kunt houden.

Een geweldige plek om te beginnen is onze gezaghebbende zelfstudie over het gebruik van VBA in Excel . Als je daarmee klaar bent, voelt dit eenvoudige script om e-mails te verzenden vanuit Excel als kinderspel.

Deel Deel Tweeten E-mail Canon versus Nikon: welk cameramerk is beter?

Canon en Nikon zijn de twee grootste namen in de camera-industrie. Maar welk merk biedt de betere reeks camera's en lenzen?

Lees volgende
Gerelateerde onderwerpen
  • productiviteit
  • Programmeren
  • E-mailtips
  • Programmeren
  • Visual Basic-programmering
  • Microsoft Excel
  • Microsoft Office-tips
Over de auteur Ryan Dube(942 artikelen gepubliceerd)

Ryan heeft een BSc-graad in Elektrotechniek. Hij heeft 13 jaar in de automatiseringstechniek gewerkt, 5 jaar in de IT en is nu een Apps Engineer. Als voormalig hoofdredacteur van MakeUseOf heeft hij gesproken op nationale conferenties over datavisualisatie en is hij te zien geweest op nationale tv en radio.

Meer van Ryan Dube

Abonneer op onze nieuwsbrief

Word lid van onze nieuwsbrief voor technische tips, recensies, gratis e-boeken en exclusieve deals!

Klik hier om je te abonneren