Excel-tutorial – E-mails verzenden vanuit Excel
Normaal gesproken gebruiken we e-mailclients zoals Outlook, Gmail enzovoort om e-mails te verzenden. Maar veel mensen slaan gegevens op in Excel-werkboek en moeten tijdens het werken met deze gegevens sommige ervan meesturen naar anderen. Daarom willen ze e-mails direct vanuit Excel-werkboek verzenden, wat tijd bespaart ten opzichte van het gebruik van een aparte e-mailclient. In deze stapsgewijze tutorial wordt uitgelegd hoe u onder verschillende omstandigheden e-mails kunt verzenden vanuit Excel.
Opmerking: voordat u de volgende methoden toepast, dient u een Outlook-e-mailclient op uw computer te configureren en deze in te stellen als standaard e-mailclient.
Inhoudsopgave:[ Verbergen ]
1. De basis van het verzenden van e-mails vanuit Excel
In deze sectie worden de basisprincipes van het verzenden van e-mails vanuit Excel helder en overzichtelijk uitgelegd.
1,1 E-mails verzenden vanuit Excel met ingebouwde Excel-functies
Als u eenvoudige e-mails wilt verzenden vanuit Excel – met alleen velden voor Aan, Onderwerp, Cc en berichttekst – dan ondersteunen de ingebouwde functies van Excel u daar perfect bij.
1,1.1 E-mail verzenden vanuit Excel met behulp van een formule
Zoals in de onderstaande tabel te zien is, kunt u verschillende e-mails verzenden vanuit Excel op basis van opgegeven velden door celverwijzingen van die velden te gebruiken voor het maken van unieke Hyperlink-formules. Nadat u de e-mailhyperlinks hebt gemaakt, hoeft u alleen maar op de gewenste hyperlink te klikken om automatisch een e-mail te versturen.
Opmerking: als er meerdere ontvangers in de velden Aan of Cc staan, scheidt u deze dan met puntkomma’s.

Deze sectie is onderverdeeld in vier delen die u stap voor stap tonen hoe u e-mailadres, cc-ontvanger(s), onderwerpregel en berichttekst afzonderlijk aan de hyperlinkformule toevoegt. Volg hiervoor de volgende stappen.
De syntaxis en argumenten van de functie „HYPERLINK” zijn als volgt:
Syntaxis
HYPERLINK(link_location, [friendly_name])
Argumenten
1,1.1,1 Voeg E-mailadres toe aan de Hyperlink-formule
Hier gebruiken we „mailto:” in de formule om een e-mailontvanger toe te voegen. In dit voorbeeld staat het e-mailadres van de eerste ontvanger in cel B2, dus voegen we „mailto:” toe en koppelen dit aan cel B2.
“mailto:”&B2
1. Selecteer een cel waarin u de hyperlink wilt weergeven – in dit geval cel F2.
2. Voer daarna de volgende formule in.
=HYPERLINK("mailto:"&B2) 
Opmerking: wanneer u op Enter drukt, wordt er een hyperlink gemaakt zoals in de onderstaande afbeelding. Als u op deze link klikt, opent Outlook automatisch een nieuw e-mailbericht en wordt het e-mailadres van de ontvanger ingevuld in het veld Aan.

Het e-mailadres van de ontvanger is nu toegevoegd aan de hyperlinkformule. Volg de volgende stappen om desgewenst het onderwerp, Cc-ontvanger(s) en de berichttekst toe te voegen.
1,1.1,2 Voeg Cc-ontvanger(s) toe aan de Hyperlink-formule
Om Cc-ontvanger(s) toe te voegen aan de Hyperlink-functie, voegt u „?cc=” toe als onderdeel van de formule, zoals hieronder wordt weergegeven.
De formule in cel F2 moet er als volgt uitzien:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2) 
1,1.1,3 Voeg een onderwerpregel toe aan de Hyperlink-formule
Om een onderwerpregel toe te voegen aan de Hyperlink-functie, neemt u „&subject=” op in de formule, zoals hieronder wordt weergegeven.
De formule in cel F2 ziet er nu als volgt uit:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2) 
1,1.1,4 Voeg berichttekst met regeleinden toe aan de Hyperlink-formule
De laatste stap is het toevoegen van de berichttekst aan de Hyperlink-formule. Zoals u in het voorbeeld ziet, bevat cel E2 twee regels tekst, gescheiden door een regeleinde – en u wilt dat regeleinde behouden in de e-mailtekst. Herkent Outlook het regeleinde in deze situatie? Laten we dat controleren.
Om de berichttekst toe te voegen aan de Hyperlink-formule, voegt u „&body=” toe als onderdeel van de formule, zoals hieronder wordt weergegeven.
De formule in cel F2 wordt nu als volgt weergegeven:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2 & "&body="& E2) 
Opmerking: als u op Enter drukt en op de link klikt, ziet u in Nieuwe e-mail dat de e-mailtekst op één regel wordt weergegeven.

Om de e-mailtekst op afzonderlijke regels weer te geven, plaatst u het Carriage Return-teken „%0A” op de gewenste plek in de celinhoud waar u een regeleinde wilt invoegen. Zie afbeelding:

1,1.1,5 Geef de weer te geven tekst op voor de hyperlink
In de bovenstaande stappen hebben we het argument Link_locatie afgewerkt met e-mailvelden. In deze sectie ronden we het volgende argument [vriendelijke_naam] af.
In dit geval wil ik dat in de hyperlinkcel de tekst „E-mail naar xx” verschijnt, waarbij xx de naam van de ontvanger in cel A2 is. Daarom moet de formule in F2 als volgt worden aangepast:
=HYPERLINK("mailto:" & B2 & "?cc=" & C2 & "&subject="& D2 & "&body="& E2, "Email to "&A2) Druk op de Enter-toets om het resultaat te krijgen.

Selecteer deze formulecel en sleep de greep voor automatisch aanvullen omlaag om andere e-mailhyperlinks te genereren. Zie afbeelding:

1,1.2 E-mail verzenden vanuit Excel met de Hyperlink-functie
Naast de bovenstaande Hyperlink-formule kunt u ook handmatig een e-mailhyperlink maken met de functie ‘Hyperlink invoegen’ in Excel. In deze sectie leest u hoe dat werkt.
1. Klik met de rechtermuisknop op de cel waarin u een hyperlink wilt plaatsen en kies „Koppeling” in het contextmenu.

2. Configureer in het venster „Hyperlink maken” dat verschijnt de volgende instellingen.

Wanneer u op de hyperlink klikt, wordt er een Outlook-e-mail aangemaakt met de opgegeven velden Aan, Onderwerp en Berichttekst, zoals weergegeven in de afbeelding hieronder.

Opmerkingen:
1,2 E-mail verzenden naar meerdere ontvangers in cellen met een VBA-script
In het bovenstaande voorbeeld ziet u dat meerdere e-mailadressen in één cel worden weergegeven, gescheiden door puntkomma’s. Als u een lijst met e-mailadressen hebt, zoals op de onderstaande afbeelding, en u wilt één e-mail of afzonderlijke e-mails verzenden naar iedereen, helpt de volgende VBA-code u daarbij.

1,2.1 Eén e-mail verzenden naar meerdere ontvangers in cellen met een VBA-script
1. Druk in het werkblad met alle e-mailadressen waarnaar u de e-mail wilt verzenden op de toetsencombinatie Alt + F11 om het venster Microsoft Visual Basic for Applications te openen.
2. Klik in het venster „Microsoft Visual Basic for Applications” op „Invoegen” > „Module” en plak de volgende code in het venster „Module (Code)”.

VBA-code: e-mail verzenden naar een lijst met E-mailadres
Sub sendmultiple()
'updateby Extendoffice 20220802
Dim xOTApp As Object
Dim xMItem As Object
Dim xCell As Range
Dim xRg As Range
Dim xEmailAddr As String
Dim xTxt As String
On Error Resume Next
xTxt = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Please select the addresses list:", "Kutools for Excel", xTxt, , , , , 8)
If xRg Is Nothing Then Exit Sub
Set xOTApp = CreateObject("Outlook.Application")
For Each xCell In xRg
If xCell.Value Like "*@*" Then
If xEmailAddr = "" Then
xEmailAddr = xCell.Value
Else
xEmailAddr = xEmailAddr & ";" & xCell.Value
End If
End If
Next
Set xMItem = xOTApp.CreateItem(0)
With xMItem
.To = xEmailAddr
.Subject = "Test"
.Body = "Dear " _
& vbNewLine & vbNewLine & _
"This is a test email " & _
"sending in Excel"
.Display
End With
End Sub 3. Druk op de F5-toets om de code uit te voeren. Het dialoogvenster „Kutools voor Excel” verschijnt. Selecteer de lijst met e-mailadressen en klik op „OK”.

Opmerkingen:
.Body = "Dear " _
& vbNewLine & vbNewLine & _
"This is a test email " & _
"sending in Excel" Nadat de code is uitgevoerd, worden alle e-mailadressen in het geselecteerde bereik weergegeven in het veld Aan van het berichtvenster. Zie afbeelding:

1,2.2 Afzonderlijke e-mails verzenden naar elke ontvanger in cellen met een VBA-script
Met de bovenstaande code worden alle e-mailadressen in het geselecteerde bereik toegevoegd aan het veld Aan van het berichtvenster. Als u afzonderlijke e-mails wilt verzenden naar elk adres in de cellen, zonder dat ontvangers elkaars e-mailadres kunnen zien, kunt u het volgende VBA-script gebruiken.
1. Druk in het werkblad met alle e-mailadressen waarnaar u e-mails wilt verzenden op de toetsencombinatie Alt + F11 om het venster Microsoft Visual Basic for Applications te openen.
2. Klik in het venster „Microsoft Visual Basic for Applications” op „Invoegen” > „Module” en plak de volgende code in het modulevenster (Code).
VBA-code: afzonderlijke e-mails verzenden naar elk Adreslijst in de cellen
Sub SendEmailToAddressInCells()
'Updated by Extendoffice 20220802
Dim xRg As Range
Dim xRgEach As Range
Dim xRgVal As String
Dim xAddress As String
Dim xOutApp As Outlook.Application
Dim xMailOut As Outlook.MailItem
On Error Resume Next
xAddress = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Please select the addresses list", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Set xOutApp = CreateObject("Outlook.Application")
Set xRg = xRg.SpecialCells(xlCellTypeConstants, xlTextValues)
For Each xRgEach In xRg
xRgVal = xRgEach.Value
If xRgVal Like "?*@?*.?*" Then
Set xMailOut = xOutApp.CreateItem(olMailItem)
With xMailOut
.To = xRgVal
.Subject = "Test"
.Body = "Dear " _
& vbNewLine & vbNewLine & _
"This is a test email " & _
"sending in Excel"
.Display
'.Send
End With
End If
Next
Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub 3. Klik vervolgens op 'Extra' > 'Referenties'. Zoek in het dialoogvenster 'Referenties – VBAProject' de optie 'Microsoft Outlook 16.0 Object Library', schakel het bijbehorende selectievakje in en klik op 'OK' om uw wijzigingen op te slaan.

4. Druk op de F5-toets om de code uit te voeren. Het dialoogvenster „Kutools voor Excel” verschijnt. Selecteer de lijst met e-mailadressen en klik op „OK”.

Opmerkingen:
.Subject = "Test"
.Body = "Dear " _
& vbNewLine & vbNewLine & _
"This is a test email " & _
"sending in Excel" In dit voorbeeld staan er zes e-mailadressen in het geselecteerde bereik, waardoor automatisch zes Outlook-berichtvensters worden geopend—ieder met een uniek adres in het veld Aan, zoals te zien is in de afbeelding hieronder.

5. Klik ten slotte op de knop „Verzenden” om de e-mails één voor één te versturen.
2. Voeg een bijlage in of voeg uw Outlook-handtekening toe aan e-mails die vanuit Excel worden verzonden (met VBA-scripts).
In deze sectie leest u hoe u een bijlage kunt invoegen of de standaard Outlook-handtekening toevoegt aan e-mails die u vanuit Excel verzendt.
2,1 Bijlage invoegen in e-mails verzonden vanuit Excel
Hier beschrijven we verschillende scenario’s voor het invoegen van een bijlage; kies de methode die het beste aansluit bij uw behoeften. In deze sectie leert u hoe u (klik op een van de volgende koppelingen om direct naar de desbetreffende methode te gaan):
2,1.1 Een bepaald bestand als bijlage e-mailen
U kunt de volgende VBA-code gebruiken om één of meer bestanden uit een map als e-mailbijlagen vanuit Excel te verzenden.
1. Druk op de toetsencombinatie Alt + F11.
2. Klik in het geopende venster „Microsoft Visual Basic for Applications" op **Invoegen** > **Module** en plak daarna de volgende VBA-code in het modulevenster (Code).
VBA-code: Bestanden in een map als bijlagen vanuit Excel per e-mail verzenden
Sub EmailWithAttachments()
'Updated by Extendoffice 20220802
Dim xStrFile As String
Dim xFilePath As String
Dim xFileDlg As FileDialog
Dim xFileDlgItem As Variant
Dim xOutApp As Outlook.Application
Dim xMailOut As Outlook.MailItem
Application.ScreenUpdating = False
Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
Set xFileDlg = Application.FileDialog(msoFileDialogFilePicker)
If xFileDlg.Show = -1 Then
With xMailOut
.BodyFormat = olFormatRichText
.To = "xxx@aaa.com"
.Subject = "test"
.HTMLBody = "test"
For Each xFileDlgItem In xFileDlg.SelectedItems
.Attachments.Add xFileDlgItem
Next xFileDlgItem
.Display
End With
End If
Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub Opmerkingen:
3. Klik vervolgens op **Extra** > **Verwijzingen**. Zoek in het dialoogvenster **Verwijzingen – VBAProject** het vakje **Microsoft Outlook 16,0 Objectbibliotheek**, schakel dit in en klik op **OK** om de wijzigingen op te slaan.

4. Druk op de toets "F5" om de code uit te voeren. Er verschijnt dan een „Bladeren"-venster: selecteer de bestanden die u als bijlage aan de e-mail wilt toevoegen en klik op „OK".

Vervolgens verschijnt een berichtvenster waarin u ziet dat de geselecteerde bestanden als bijlagen worden weergegeven in het veld Bijlagen.

2,1.2 De Huidig werkblad als bijlage per e-mail verzenden
Als u het huidige werkblad als bijlage vanuit Excel per e-mail wilt verzenden, kunt u het VBA-script in deze sectie gebruiken.
1. Druk op de toetsencombinatie Alt + F11.
2. Klik in het geopende venster „Microsoft Visual Basic for Applications" op **Invoegen** > **Module** en plak daarna de volgende VBA-code in het venster **Module (Code)**.
VBA-code: De Huidig werkblad als bijlage per e-mail verzenden
Sub SendWorkSheet()
'Update by Extendoffice 20220802
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Application.ScreenUpdating = False
Set Wb = Application.ActiveWorkbook
ActiveSheet.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
If Wb2.HasVBProject Then
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Else
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
End If
Case Excel8:
xFile = ".xls"
xFormat = Excel8
Case xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
.To = "xxx@aaa.com"
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "kte features"
.Body = "Please check and read this document."
.Attachments.Add Wb2.FullName
.Display
'.Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Application.ScreenUpdating = True
End Sub Opmerkingen:
3. Druk op de F5-toets om de code uit te voeren. Het huidige werkblad wordt dan automatisch opgeslagen als een Excel-werkboek en direct als bijlage ingevoegd in een nieuw berichtvenster. Zie screenshot:

Opmerking: De bijgevoegde werkmap, die uitsluitend het huidige werkblad bevat, draagt dezelfde naam als de oorspronkelijke werkmap. Daarnaast wordt het tijdstip van uitvoering van de code automatisch toegevoegd aan de werkboeknaam.
2,1.3 De Huidig werkboek als bijlage per e-mail verzenden
Nadat u de VBA-code hebt geleerd om het huidige werkblad als bijlage vanuit Excel per e-mail te verzenden, bieden we hier een ander VBA-script waarmee u de volledige werkmap als bijlage kunt versturen. Volg hiervoor de onderstaande stappen.
1. Druk op de toetsencombinatie Alt + F11.
2. Klik in het geopende venster „Microsoft Visual Basic for Applications" op **Invoegen** > **Module** en plak daarna de volgende VBA-code in het modulevenster (Code).
VBA-code: De Huidig werkboek als bijlage vanuit Excel per e-mail verzenden
Sub SendWorkBook()
'Update by Extendoffice 20220802
Dim OutlookApp As Object
Dim OutlookMail As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
On Error Resume Next
With OutlookMail
.To = "xxx@aaa.com"
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "kte feature"
.Body = "Hello, please check and read this document, thank you."
.Attachments.Add Application.ActiveWorkbook.FullName
.Display
'.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub Opmerkingen:
3. Druk op de F5-toets om de code uit te voeren. Vervolgens wordt het huidige werkboek automatisch als bijlage toegevoegd aan het berichtvenster. Zie screenshot:

2,1.4 De volledige werkmap als PDF-bijlage per e-mail verzenden
De meeste mensen slaan een Excel-werkboek eerst op als PDF-bestand en e-mailen het daarna als bijlage. In deze sectie laat ik u zien hoe u direct vanuit Excel een e-mail kunt versturen met de huidige geopende werkmap als PDF-bijlage — zonder dat u handmatig het bestand hoeft op te slaan als PDF.
1. Druk op de toetsencombinatie Alt + F11.
2. Klik in het geopende venster "Microsoft Visual Basic for Applications" op "Invoegen" > „Module" en plak daarna de volgende VBA-code in het modulevenster (Code).
VBA-code: De volledige werkmap als PDF-bijlage per e-mail verzenden
Sub SendWorkBookAsPDF()
'Update 20220803
Dim Wb As Workbook
Dim FilePath As String
Dim FileName As String
Dim xOutApp As Object
Dim xOutMail As Object
On Error Resume Next
Application.ScreenUpdating = False
Set Wb = Application.ActiveWorkbook
FileName = Left(Wb.Name, (InStrRev(Wb.Name, ".", -1, vbTextCompare) - 1)) & Format(Now, "dd-mmm-yy h-mm-ss") & ".pdf"
FilePath = Environ$("temp") & "\" & FileName
Wb.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
FilePath, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
False
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
With xOutMail
.To = "xxx@aaa.com"
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "test"
.Body = "test"
.Attachments.Add FilePath
.Display 'or use .Send
End With
Kill FilePath
Set xOutMail = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub Opmerkingen:
3. Druk op de toets "F5" om de code uit te voeren. Vervolgens wordt het huidige werkboek automatisch als PDF-bijlage ingevoegd in een nieuw berichtvenster. Zie screenshot:

2,1.5 De Huidig werkblad als PDF-bijlage per e-mail verzenden
Stel dat u een werkmap hebt met de naam „Maandelijkse verkoop” en dat u in het werkblad „verkooprapport” een verkooprapporttabel hebt voltooid. U wilt dit werkblad eenvoudig als PDF-bestand naar uw collega’s versturen — en dat kan met de volgende VBA-code.
1. Druk op de toetsencombinatie Alt + F11.
2. Klik in het geopende venster „Microsoft Visual Basic for Applications" op **Invoegen** > **Module** en plak daarna de volgende VBA-code in het Module-venster (Code).
VBA-code: De Huidig werkblad als PDF-bijlage per e-mail verzenden
Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.To = "xxx@aaa.com"
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "test"
.Body = "test"
.Attachments.Add FileName
.Display
'.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub Opmerkingen:
3. Druk op de toets "F5" om de code uit te voeren. Het huidige werkblad wordt vervolgens automatisch als PDF-bijlage ingevoegd in een nieuw berichtvenster. Zie screenshot:

2,2 Outlook-handtekening invoegen in e-mails verzonden vanuit Excel
Neem het bovenstaande voorbeeld: u past de eerder genoemde VBA-code toe om het huidige werkblad als PDF-bijlage vanuit Excel te verzenden, maar de Outlook-handtekening wordt niet automatisch toegevoegd aan het e-mailvenster. Met de volgende methode behoudt u de standaardhandtekening van Outlook in de e-mail die u vanuit Excel verzendt.
Hieronder staan twee VBA-codes.
VBA-code 1: Deze code zorgt ervoor dat uw Outlook-handtekening behouden blijft.
VBA-code 2: Deze code helpt u het huidige werkblad als PDF-bijlage per e-mail te verzenden.
VBA-code 1: Outlook-handtekening behouden
.HTMLBody = "Email body" & "
" & .HTMLBody VBA-code 2: De Huidig werkblad als PDF-bijlage per e-mail verzenden
Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.To = "xxx@aaa.com"
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "test"
.Body = "test"
.Attachments.Add FileName
.Display
'.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub 1. Druk normaal gesproken op de toetsencombinatie Alt + F11 om het venster Microsoft Visual Basic for Applications te openen.
2. Klik in het venster 'Microsoft Visual Basic for Applications' op 'Invoegen' > 'Module' en plak de bovenstaande VBA-code 2 in het modulevenster (Code).
3. Om de standaardhandtekening van Outlook te behouden in e-mails die u vanuit Excel verzendt, past u VBA-code 2 als volgt aan:

Hier is de volledige, aangepaste code.
Sub SendWorkSheetToPDF()
'Update by Extendoffice 20220803
Dim Wb As Workbook
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
On Error Resume Next
Set Wb = Application.ActiveWorkbook
FileName = Wb.FullName
xIndex = VBA.InStrRev(FileName, ".")
If xIndex > 1 Then FileName = VBA.Left(FileName, xIndex - 1)
FileName = FileName & "_" + ActiveSheet.Name & ".pdf"
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
With OutlookMail
.Display
.To = "xxx@aaa.com"
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "test"
.HTMLBody = "Email body" & "
" & .HTMLBody
.Attachments.Add FileName
'.Send
End With
Kill FileName
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub 4. Druk op de toets "F5" om de code uit te voeren. Vervolgens verschijnt er een nieuw berichtvenster met het huidige werkblad als PDF-bijlage, terwijl de standaardhandtekening van Outlook automatisch aan het einde van de e-mailtekst wordt toegevoegd.

3. Stuur automatisch e-mails vanuit Excel zodra aan een voorwaarde is voldaan (met VBA-scripts)
In de bovenstaande voorbeelden voert u de code handmatig uit om de e-mail te verzenden. Wilt u de code echter automatisch activeren zodra aan een bepaalde voorwaarde is voldaan – bijvoorbeeld wanneer een cel een specifieke waarde bereikt, wanneer de waarde van een cel verandert, of wanneer een bepaalde datum is aangebroken – dan wordt de e-mail automatisch verzonden. In deze sectie vindt u de voorwaarden die Excel-gebruikers vaak op Google zoeken, zodat u e-mails automatisch kunt versturen vanuit Excel zodra aan een voorwaarde is voldaan.
3,1 Automatisch een e-mail verzenden wanneer een cel een bepaalde waarde bereikt
Zoals in de onderstaande screenshot te zien is, stel dat u een verkoopoverzicht hebt met in cel D6 het totaalbedrag van de verkopen. U wilt automatisch een e-mail naar uw baas verzenden op basis van dit bedrag: bijvoorbeeld automatisch een e-mail aanmaken of versturen wanneer het verkoopbedrag hoger is dan 10.000, en geen actie ondernemen als het bedrag gelijk is aan of lager dan 10.000.

1. Klik met de rechtermuisknop op het tabblad van het werkblad met het verkoopoverzicht en kies ‘Code weergeven’ in het contextmenu.

2. Plak in het venster „Microsoft Visual Basic for Applications" dat wordt geopend, de volgende VBA-code in het venster Blad (Code).

VBA-code: Automatisch een e-mail verzenden wanneer een cel in Excel een bepaalde waarde bereikt
Dim xRg As Range
'Update by Extendoffice 20200803
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Cells.Count > 1 Then Exit Sub
Set xRg = Intersect(Range("D6"), Target)
If xRg Is Nothing Then Exit Sub
If IsNumeric(Target.Value) And Target.Value > 10000 Then
Call Mail_small_Text_Outlook
End If
End Sub
Sub Mail_small_Text_Outlook()
Dim xOutApp As Object
Dim xOutMail As Object
Dim xMailBody As String
Set xOutApp = CreateObject("Outlook.Application")
Set xOutMail = xOutApp.CreateItem(0)
xMailBody = "Hi boss" & vbNewLine & vbNewLine & _
"Total sales of over $10,000 in January: " & Range("D6")
On Error Resume Next
With xOutMail
.To = "xxx@aaa.com"
.CC = "Email address"
.BCC = "Email address"
.Subject = "test"
.Body = xMailBody
.Display 'or use .Send
End With
On Error GoTo 0
Set xOutMail = Nothing
Set xOutApp = Nothing
End Sub
Private Sub Worksheet_Calculate()
Dim xI As Integer
Dim xRg As Range
Set xRg = Range("D6")
On Error GoTo Err01
xI = Int(xRg.Value)
If xI > 10000 Then
Call Mail_small_Text_Outlook
End If
Err01:
End Sub Opmerkingen:
xMailBody = "Hi boss" & vbNewLine & vbNewLine & _
"Total sales of over $10,000 in January: " & Range("D6") Vanaf nu wordt automatisch een e-mail aangemaakt wanneer de waarde in cel D6 hoger is dan 10.000, zoals te zien is in de onderstaande screenshot.

3,2 Automatisch een e-mail verzenden wanneer de waarde van een cel verandert
Zoals in de onderstaande screenshot te zien is, stel dat u een werkmap ontvangt met maandelijkse verkoopcijfers verspreid over verschillende werkbladen en het totale verkoopbedrag op een apart werkblad. U dient dit verkoopbedrag te controleren en, indien gewijzigd, de werkmap direct terug te sturen naar de afzender met de melding dat de cel is aangepast.

1. Klik met de rechtermuisknop op het bladtabblad van het werkblad met de verkoopgegevens en kies 'Code weergeven' in het contextmenu.

2. Plak in het venster „Microsoft Visual Basic for Applications" dat wordt geopend, de volgende VBA-code in het venster Blad (Code).
VBA-code: Automatisch een e-mail verzenden wanneer de waarde van een opgegeven cel verandert
Private Sub Worksheet_Change(ByVal Target As Range)
'Updated by Extendoffice 20220803
Dim xRgSel As Range
Dim xOutApp As Object
Dim xMailItem As Object
Dim xMailBody As String
Dim xBoolean As Boolean
Dim xItsRG As Range
Dim xDDs As Range
Dim xDs As Range
On Error Resume Next
Application.ScreenUpdating = False
Application.DisplayAlerts = False
xBoolean = False
Set xRg = Range("B14")
Set xItsRG = Intersect(Target, xRg)
Set xDDs = Intersect(Target.DirectDependents, xRg)
Set xDs = Intersect(Target.Dependents, xRg)
If Not (xItsRG Is Nothing) Then
Set xRgSel = xItsRG
xBoolean = True
ElseIf Not (xDDs Is Nothing) Then
Set xRgSel = xDDs
xBoolean = True
ElseIf Not (xDs Is Nothing) Then
Set xRgSel = xDs
xBoolean = True
End If
ActiveWorkbook.Save
If xBoolean Then
Debug.Print xRgSel.Address
Set xOutApp = CreateObject("Outlook.Application")
Set xMailItem = xOutApp.CreateItem(0)
xMailBody = "The cell " & xRgSel.Address(False, False) & _
" in the worksheet '" & Me.Name & "' were modified on " & _
Format$(Now, "mm/dd/yyyy") & " at " & Format$(Now, "hh:mm:ss") & _
" by " & Environ$("username") & "."
With xMailItem
.To = "xxx@aaa.com"
.CC = "Email address"
.BCC = "Email address"
.Subject = "Worksheet modified"
.Body = xMailBody
.Attachments.Add (ThisWorkbook.FullName)
.Display
End With
Set xRgSel = Nothing
Set xOutApp = Nothing
Set xMailItem = Nothing
End If
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub Opmerkingen: In de code,
Vanaf nu wordt er automatisch een Outlook-bericht gemaakt zodra de waarde in cel B14 wijzigt, zoals te zien is in de onderstaande screenshot.

3,3 Automatisch een e-mail verzenden wanneer een werkmap wordt opgeslagen
Als u een werkmap hebt die na wijziging met anderen moet worden gedeeld, moet u normaal gesproken de werkmap opslaan, de e-mailclient starten, een Nieuwe Email aanmaken met deze werkmap als bijlage, de overeenkomstige velden invullen en de e-mail verzenden. In deze sectie wordt een methode beschreven om automatisch een e-mail aan te maken telkens wanneer u de werkmap opslaat. Volg hiervoor de onderstaande stappen.
1. Druk op de toetsencombinatie Alt + F11 om het venster Microsoft Visual Basic for Applications te openen.
2. Dubbelklik in dit venster op „ThisWorkbook" in het deelvenster „Project" en plak daarna de volgende VBA-code in het venster „ThisWorkbook (Code)".

VBA-code: Automatisch een e-mail verzenden wanneer een werkmap wordt opgeslagen
Private Sub Workbook_AfterSave(ByVal Success As Boolean)
'Updated by Extendoffice 20220804
Dim xOutApp As Object
Dim xMailItem As Object
Dim xName As String
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Set xMailItem = xOutApp.CreateItem(0)
xName = ActiveWorkbook.FullName
With xMailItem
.To = "xxx@aaa.com"
.CC = "Email address"
.BCC = "Email address"
.Subject = "The workbook has been updated"
.Body = "Hi," & Chr(13) & Chr(13) & "File is now updated."
.Attachments.Add xName
.Display
'.send
End With
Set xMailItem = Nothing
Set xOutApp = Nothing
End Sub Opmerkingen: In de code,
3. Vanaf nu wordt er automatisch een Outlook-e-mail aangemaakt wanneer u de werkmap opslaat door op de toetsencombinatie "Ctrl" + „S" te drukken of op de knop „Opslaan" te klikken. U ziet dat de Huidig werkboek als bijlage is toegevoegd en dat de velden zijn ingevuld met de opgegeven inhoud. Zie screenshot:

Tip: Als u deze werkmap regelmatig gebruikt, raden we u aan deze op te slaan als een ‘Excel-werkmap met macro’s ingeschakeld’, zodat het VBA-script bewaard blijft voor toekomstig gebruik. Volg hiervoor de onderstaande stappen.

3,4 Automatisch een e-mail verzenden op een specifiek tijdstip
Stel dat u elke vrijdagochtend om 9,00 uur automatisch een e-mail met een werkmap voor taaktoewijzing naar iemand wilt verzenden — zonder handmatig uw e-mailclient te hoeven bedienen. In deze sectie leest u hoe u dat in Excel kunt regelen.
1. Druk op de toetsencombinatie Alt + F11 om het venster Microsoft Visual Basic for Applications te openen.
2. Klik in het venster „Microsoft Visual Basic for Applications” op „Invoegen” > „Module” en plak daarna de volgende VBA-code in het modulevenster.

VBA-code1: E-mail de Huidig werkboek als bijlage vanuit Excel
Sub Timer()
If Weekday(Date) = vbFriday Then
SendWorkBook
Application.OnTime TimeValue("09:00:00"), "Timer"
Else
Application.OnTime TimeValue("09:00:00"), "Timer"
End If
End Sub
Sub SendWorkBook()
'Update by Extendoffice 20220802
Dim OutlookApp As Object
Dim OutlookMail As Object
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
On Error Resume Next
With OutlookMail
.To = "xxx@aaa.com"
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "kte feature"
.Body = "Hello, please check and read this document, thank you."
.Attachments.Add Application.ActiveWorkbook.FullName
.Display
'.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub 3. Dubbelklik in dit venster op „ThisWorkbook” in het deelvenster „Project” en plak vervolgens de volgende VBA-code in het venster „ThisWorkbook (Code)”.

VBA-code 2: Automatisch een e-mail verzenden op een bepaald tijdstip
Private Sub Workbook_Open()
Application.OnTime TimeValue("09:00:00"), "Timer"
End Sub Opmerkingen:
4. Sla de codes op en sla de werkmap daarna op als een macro-inschakelbare Excel-werkmap, zoals hieronder beschreven.

5. Open uw opgeslagen macro-inschakelbare werkmap; op het juiste moment wordt er automatisch een e-mail gemaakt of verzonden.
4. Aanvullende onderwerpen
Deze sectie bundelt andere onderwerpen die u mogelijk tegenkomt bij het verzenden van e-mails vanuit Excel.
4,1 Een celbereik vanuit Excel e-mailen (met VBA-script)
Stel dat u een maandelijkse verkoopstabel hebt in een Excel-werkblad, zoals in de afbeelding hieronder, en u deze tabel wilt delen met anderen — ofwel als e-mailtekst of direct als bijlage. Daarvoor bieden we u twee methoden aan.

4,1.1 Een celbereik als onderdeel van de e-mailtekst vanuit Excel verzenden
U kunt de volgende VBA-code uitvoeren om een celbereik rechtstreeks als onderdeel van de e-mailtekst vanuit Excel te verzenden.
1. Druk op de toetsencombinatie Alt + F11 om het venster Microsoft Visual Basic for Applications te openen.
2. Klik in het venster „Microsoft Visual Basic for Applications” op „Extra” > „Referenties”, schakel vervolgens het selectievakje „Microsoft Outlook 16,0 Object Library” in en klik op „OK” in het dialoogvenster „Referenties – VBAProject”.

3. Klik op 'Invoegen' > 'Module' en plak vervolgens de volgende VBA-code in het venster 'Module (Code)'.
VBA-code: Een celbereik als onderdeel van de e-mailtekst vanuit Excel verzenden
Sub SendARangeofCells()
'Updated by Extendoffice 20220809
Dim xRg As Range
Dim I, J As Long
Dim xAddress As String
Dim xMailOut As Object
Dim xOutApp As Object
On Error Resume Next
Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
xAddress = ActiveWindow.RangeSelection.Address
Set xRg = Application.InputBox("Please select range you need to paste into email body", "KuTools For Excel", xAddress, , , , , 8)
If xRg Is Nothing Then Exit Sub
Application.ScreenUpdating = False
Set xOutApp = CreateObject("Outlook.Application")
Set xMailOut = xOutApp.CreateItem(olMailItem)
With xMailOut
.Subject = "test"
.To = "xxx@aaa.com"
.CC = "Email address"
.BCC = "Email address"
.HTMLBody = RangetoHTML(xRg)
.Display
'.Send
End With
Set xMailOut = Nothing
Set xOutApp = Nothing
Application.ScreenUpdating = True
End Sub
' The following VBA script is cited from this page:
' https://stackoverflow.com/questions/18663127/paste-excel-range-in-outlook
Function RangetoHTML(rng As Range)
' By Ron de Bruin.
Dim fso As Object
Dim ts As Object
Dim TempFile As String
Dim TempWB As Workbook
TempFile = Environ$("temp") & "/" & Format(Now, "dd-mm-yy h-mm-ss") & ".htm"
'Copy the range and create a new workbook to past the data in
rng.Copy
Set TempWB = Workbooks.Add(1)
With TempWB.Sheets(1)
.Cells(1).PasteSpecial Paste:=8
.Cells(1).PasteSpecial xlPasteValues, , False, False
.Cells(1).PasteSpecial xlPasteFormats, , False, False
.Cells(1).Select
Application.CutCopyMode = False
On Error Resume Next
.DrawingObjects.Visible = True
.DrawingObjects.Delete
On Error GoTo 0
End With
'Publish the sheet to a htm file
With TempWB.PublishObjects.Add( _
SourceType:=xlSourceRange, _
Filename:=TempFile, _
Sheet:=TempWB.Sheets(1).Name, _
Source:=TempWB.Sheets(1).UsedRange.Address, _
HtmlType:=xlHtmlStatic)
.Publish (True)
End With
'Read all data from the htm file into RangetoHTML
Set fso = CreateObject("Scripting.FileSystemObject")
Set ts = fso.GetFile(TempFile).OpenAsTextStream(1, -2)
RangetoHTML = ts.ReadAll
ts.Close
RangetoHTML = Replace(RangetoHTML, "align=center x:publishsource=", _
"align=left x:publishsource=")
'Close TempWB
TempWB.Close savechanges:=False
'Delete the htm file we used in this function
Kill TempFile
Set ts = Nothing
Set fso = Nothing
Set TempWB = Nothing
End Function Opmerkingen: In de code,
4. Druk op de F5-toets om de code uit te voeren. Selecteer in het dialoogvenster „Kutools voor Excel” het celbereik dat u als onderdeel van de e-mailtekst wilt verzenden en klik op „OK”. Zie afbeelding:

Er wordt automatisch een Outlook-e-mail aangemaakt, waarin het bereik dat u in het werkblad hebt geselecteerd, direct in de e-mailtekst is ingevoegd. Zie afbeelding:

4,1.2 Een celbereik als bijlage vanuit Excel e-mailen
Wilt u een celbereik uit een werkblad als bijlage per e-mail versturen vanuit Excel? Probeer dan de volgende VBA-code.
1. Druk op de toetsencombinatie Alt + F11.
2. Klik in het geopende venster „Microsoft Visual Basic for Applications” op „Invoegen” > „Module” en plak vervolgens de volgende VBA-code in het venster „Module (Code)”.
VBA-code: Een celbereik als bijlage vanuit Excel e-mailen
Sub SendRange()
'Update 20220809
Dim xFile As String
Dim xFormat As Long
Dim Wb As Workbook
Dim Wb2 As Workbook
Dim Ws As Worksheet
Dim FilePath As String
Dim FileName As String
Dim OutlookApp As Object
Dim OutlookMail As Object
Dim WorkRng As Range
xTitleId = "KutoolsforExcel"
Set WorkRng = Application.Selection
Set WorkRng = Application.InputBox("Range", xTitleId, WorkRng.Address, Type:=8)
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Set Wb = Application.ActiveWorkbook
Wb.Worksheets.Add
Set Ws = Application.ActiveSheet
WorkRng.Copy Ws.Cells(1, 1)
Ws.Copy
Set Wb2 = Application.ActiveWorkbook
Select Case Wb.FileFormat
Case xlOpenXMLWorkbook:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroEnabled:
If Wb2.HasVBProject Then
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Else
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
End If
Case Excel8:
xFile = ".xls"
xFormat = Excel8
Case xlExcel12:
xFile = ".xlsb"
xFormat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
FileName = Wb.Name & Format(Now, "dd-mmm-yy h-mm-ss")
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(0)
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
With OutlookMail
.To = "xxx@aaa.com"
.CC = "Email address"
.BCC = "Email address"
.Subject = "Monthly sales for 2021"
.Body = "Hello, please check and read this document. "
.Attachments.Add Wb2.FullName
.Display
'.Send
End With
Wb2.Close
Kill FilePath & FileName & xFile
Set OutlookMail = Nothing
Set OutlookApp = Nothing
Ws.Delete
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub Opmerkingen:
3. Druk op de F5-toets om de code uit te voeren. Selecteer in het dialoogvenster „Kutools voor Excel” het celbereik dat u als bijlage in een e-mail wilt verzenden en klik op „OK”. Zie afbeelding:

Er wordt automatisch een Outlook-e-mail gemaakt, waarbij het door u geselecteerde celbereik uit het werkblad wordt opgeslagen als een Excel-werkboek en als bijlage aan het berichtvenster wordt toegevoegd. Zie afbeelding:

4,2 E-mails verzenden wanneer op een knop in Excel wordt geklikt
Als u op een opdrachtknop wilt klikken om een macro te activeren die een e-mail vanuit Excel verzendt – bijvoorbeeld om het huidige werkboek als bijlage naar anderen te sturen door simpelweg op een knop in het werkblad te klikken – volgt u deze stappen.
1. Klik op „Ontwikkelaar” > „Invoegen” > „Opdrachtknop (ActiveX-besturingselement)” en teken daarna een opdrachtknop in het werkblad.
Tip: Als u al een opdrachtknop heeft, kunt u deze stap overslaan.

2. Druk op de toetsencombinatie „Alt” + „F11” om het venster „Microsoft Visual Basic for Applications” te openen. Klik vervolgens op „Invoegen” > „Module” en plak de VBA-code (de code waarmee het huidige werkboek als bijlage vanuit Excel wordt gemaild) in het venster „Module (Code)”.
Klik hier om de code te ontvangen.

Opmerking: De naam van de macro die u in stap 2 hebt gemaakt, is „SendWorkbook”.
3. Druk op de toetsencombinatie Alt + Q om het venster Microsoft Visual Basic for Applications te sluiten.
4. Wijs nu de macro toe aan de opdrachtknop. Klik met de rechtermuisknop op de knop en kies ‘Code weergeven’ in het contextmenu.

5. Het venster „Microsoft Visual Basic for Applications” verschijnt, waarin u de volgende twee regels ziet weergegeven in het venster „Blad (Code)”.
Private Sub CommandButton1_Click()
End Sub 
6. Voer de naam van de bestaande macro in de subprocedure van de opdrachtknop in.

7. Druk op de toetsencombinatie „Alt” + „Q” om de „Visual Basic Editor” te sluiten en klik op „Ontwikkelaar” > „Ontwerpmodus” om de ontwerpmodus uit te schakelen.

U kunt nu op de opdrachtknop klikken om een e-mail te verzenden met het huidige werkboek als bijlage.
4,3 E-mails verzenden vanaf een opgegeven e-mailaccount
Normaal gesproken gebruikt Excel bij het verzenden van een e-mail via VBA-code het standaardaccount van Outlook als afzender. Maar wat als u meerdere e-mailaccounts in Outlook heeft ingesteld en liever een specifiek account wilt gebruiken om e-mails vanuit Excel te versturen? De volgende VBA-code helpt u daarbij.
De volgende codes zijn in dit geval essentieel.
VBA-code 1:
Dim OutlookMail As Outlook.MailItem VBA-code 2:
For Each xAccount In OutlookApp.Session.Accounts
If VBA.LCase(xAccount.SmtpAddress) = VBA.LCase("zxm@addin99.com") Then 'Specify your email account here
OutlookMail.SendUsingAccount = xAccount
End If
Next Hoe gebruikt u de bovenstaande VBA-codes?
In dit voorbeeld geven we een specifiek e-mailaccount op om het huidige werkboek als bijlage vanuit Excel te verzenden. Volg hiervoor de onderstaande stappen.
1. Druk op de toetsencombinatie Alt + F11. Klik in het venster Microsoft Visual Basic for Applications op Extra > Referenties, schakel het selectievakje Microsoft Outlook 16,0 Object Library in en klik op OK in het dialoogvenster Referenties – VBAProject.

2. Klik op 'Invoegen' > 'Module' en plak vervolgens de volgende VBA-code in het venster 'Module (Code)'.
VBA-code: De Huidig werkboek als e-mailbijlage vanuit Excel verzenden via een opgegeven Outlook-account
Sub SendWorkBook()
'Update by Extendoffice 20220809
Dim OutlookApp As Object
Dim OutlookMail As Outlook.MailItem 'important! Here can’t be declared as Object
Dim xAccount As Account
Set OutlookApp = CreateObject("Outlook.Application")
Set OutlookMail = OutlookApp.CreateItem(olMailItem)
On Error Resume Next
'The following lines helps to specify a certian email account
For Each xAccount In OutlookApp.Session.Accounts
If VBA.LCase(xAccount.SmtpAddress) = VBA.LCase("zxm@addin99.com") Then 'Specify your email account here
OutlookMail.SendUsingAccount = xAccount
End If
Next
'End
With OutlookMail
.To = "xxx@aaa.com"
.CC = "Email Address"
.BCC = "Email Address"
.Subject = "kte feature"
.Body = "Hello, please check and read this document, thank you."
.Attachments.Add Application.ActiveWorkbook.FullName
.Display
'.Send
End With
Set OutlookMail = Nothing
Set OutlookApp = Nothing
End Sub 3. Druk op de F5-toets om de code uit te voeren. Er verschijnt dan een Outlook-e-mailbericht met het veld „Van” automatisch ingevuld met het e-mailaccount dat u in de code heeft opgegeven.
4,4 Een e-mail verzenden wanneer een datum is bereikt
Als u een e-mail wilt verzenden op basis van een specifieke vervaldatum—zoals in de onderstaande afbeelding, waarin een projecttabel is weergegeven—dan wordt er automatisch een e-mail gestuurd naar de betreffende projectleiders wanneer de vervaldatum in het bereik E2:E7 gelijk is aan of minder dan 7 dagen vanaf vandaag (uitgaande van 4-8-2022 als huidige datum), met de melding dat het project bijna verloopt.

1. Klik met de rechtermuisknop op het tabblad van het werkblad dat de projecttabel bevat en kies ‘Code weergeven’ in het contextmenu.

2. Plak in het venster „Microsoft Visual Basic for Applications" dat wordt geopend, de volgende VBA-code in het venster „Blad (Code)".
VBA-code: Automatisch een e-mail verzenden wanneer een Vervaldatum is bereikt
Public Sub SendMailDueDate()
'Updated by Extendoffice 20220804
Dim xRgDate As Range
Dim xRgSend As Range
Dim xRgText As Range
Dim xRgDone As Range
Dim xOutApp As Object
Dim xMailItem As Object
Dim xLastRow As Long
Dim vbCrLf As String
Dim xMailBody As String
Dim xRgDateVal As String
Dim xRgSendVal As String
Dim xMailSubject As String
Dim i As Long
On Error Resume Next
Set xRgDate = Range("E2:E7") 'Please reference the due date column range
If xRgDate Is Nothing Then Exit Sub
Set xRgSend = Range("C2:C7") 'Please reference the email addresses column range
If xRgSend Is Nothing Then Exit Sub
Set xRgText = Range("D2:D7") 'Please reference the remark column range (the remark used to notify project leaders of the expiration of the project)
If xRgText Is Nothing Then Exit Sub
xLastRow = xRgDate.Rows.Count
Set xRgDate = xRgDate(1)
Set xRgSend = xRgSend(1)
Set xRgText = xRgText(1)
Set xOutApp = CreateObject("Outlook.Application")
For i = 1 To xLastRow
xRgDateVal = ""
xRgDateVal = xRgDate.Offset(i - 1).Value
If xRgDateVal <> "" Then
If CDate(xRgDateVal) - Date <= 7 And CDate(xRgDateVal) - Date > 0 Then
xRgSendVal = xRgSend.Offset(i - 1).Value
xMailSubject = xRgText.Offset(i - 1).Value & " on " & xRgDateVal
vbCrLf = "
"
xMailBody = ""
xMailBody = xMailBody & "Dear " & xRgSendVal & vbCrLf
xMailBody = xMailBody & "Remark : " & xRgText.Offset(i - 1).Value & vbCrLf
xMailBody = xMailBody & ""
Set xMailItem = xOutApp.CreateItem(0)
With xMailItem
.Subject = xMailSubject
.To = xRgSendVal
.CC = "Email address"
.BCC = "Email address"
.HTMLBody = xMailBody
.Display
'.Send
End With
Set xMailItem = Nothing
End If
End If
Next
Set xOutApp = Nothing
End Sub Opmerkingen: In de code,
3. Druk op de F5-toets om de code uit te voeren. Als de vervaldatum aan de voorwaarden voldoet, wordt de bijbehorende e-mail automatisch gegenereerd. In dit geval worden er twee e-mails aangemaakt, zoals te zien is in de afbeelding hieronder.

5. Een handige tool om e-mails moeiteloos vanuit Excel te verzenden
Als u nieuw bent met VBA, zijn de bovenstaande methoden mogelijk niet eenvoudig voor u. Wij raden daarom de functie aan.E-mails verzenden van „Kutools voor Excel” aan. Met deze functie verzendt u e-mails vanuit Excel in slechts enkele klikken. Volg hiervoor de onderstaande stappen.
5,1 Maak eenvoudig een E-maillijst met de e-mailvelden die u nodig hebt
Voordat u de functie „E-mails verzenden” gebruikt, dient u eerst een e-maillijst aan te maken met de vereiste e-mailvelden. Daarvoor kunt u de functie „Mailinglijst maken” toepassen.
1. Klik op „KUTOOLS PLUS” > „Mailinglijst maken”.

2. Configureer in het geopende venster „Mailinglijst maken” het volgende:

Er wordt vervolgens een voorbeeldtabel ‘E-maillijst’ gemaakt, zoals te zien is in de onderstaande afbeelding.

3. Vervang nu de voorbeeldgegevens door uw eigen veldgegevens.

U hebt nu een e-maillijsttabel gemaakt. Ga verder met het gebruik van de functie „E-mails verzenden” om e-mails rechtstreeks vanuit Excel te versturen op basis van de velden die u heeft ingesteld.
Kutools voor Excel– Geef Excel een boost met meer dan 300 essentiële hulpmiddelen, waardoor uw werk sneller en eenvoudiger verloopt, en profiteer van AI-functies voor slimmere gegevensverwerking en productiviteit.Nu verkrijgen
5,2 Stuur e-mails eenvoudig met de velden die u hebt gemaakt in de E-maillijst
Nadat u de e-maillijst hebt gemaakt ()klik hier om te weten hoe), inclusief de velden die u mogelijk nodig heeft in uw e-mails, kunt u nu e-mails verzenden vanuit Excel met deze velden.
1. Selecteer de volledige e-maillijst en klik op „Kutools Plus” > „E-mails verzenden”.

2. Voer in het dialoogvenster „E-mails verzenden” de volgende configuratie uit.

3. Vervolgens verschijnt het dialoogvenster „Kutools voor Excel” met het aantal verzonden e-mails; klik op „OK” om het venster te sluiten.
Tip: Controleer uw verzonden e-mails door naar de map „Verzonden items” in Outlook te gaan.

5,3 Stuur e-mails eenvoudig met een HTML-tekst (inclusief hyperlink, afbeelding, enz.)
Met de functie E-mails verzenden stelt u eenvoudig HTML-e-mails op, compleet met hyperlinks, afbeeldingen, diverse tekstgroottes en letterkleuren, en meer.
Nadat u een e-maillijst hebt gemaakt met de e-mailvelden die u nodig hebt, kunt u het dialoogvenster E-mails verzenden configureren en de tekst inhoudelijk verrijken met behulp van de opties op de werkbalk.
Zie onderstaande schermafbeelding:

5,4 Voeg eenvoudig de standaardhandtekening van Outlook toe bij het verzenden van e-mails
In de bovenstaande methode hebben we een VBA-code getoond waarmee u e-mails kunt verzenden met de standaardhandtekening van Outlook. Met de functie E-mails verzenden hoeft u slechts een optie aan te vinken, en de standaardhandtekening van Outlook wordt automatisch toegevoegd aan de e-mails die u vanuit Excel verzendt.
Nadat u een e-maillijst hebt gemaakt met de gewenste e-mailvelden, klikt u tijdens het configureren van het dialoogvenster E-mails verzenden op **Opties** > **Handtekeninginstellingen van Outlook gebruiken**.
Opmerking: Zorg ervoor dat het selectievinkje bij de optie ‘Handtekeninginstellingen van Outlook gebruiken’ is aangevinkt.

Wanneer ontvangers de e-mail ontvangen, verschijnt onderaan de e-mailtekst automatisch de standaardhandtekening van Outlook.
5,5 Stuur e-mails eenvoudig vanaf een specifiek e-mailaccount
Als u e-mails vanuit Excel wilt verzenden via een specifiek e-mailaccount in plaats van uw standaardaccount, maakt de functie E-mails verzenden dit eenvoudig voor u mogelijk.
Nadat u een e-maillijst hebt gemaakt met de e-mailvelden die u nodig hebt, klikt u tijdens het configureren van het dialoogvenster E-mails verzenden op **Opties** > **Verzonden van** en selecteert u vervolgens het e-mailaccount waarmee u e-mails wilt verzenden.
Opmerking: Nadat u het e-mailaccount hebt geselecteerd, verschijnt er een vinkje bij dit account.

Klik hier voor meer informatie over de functie E-mails verzenden.
Kutools voor Excel– Geef Excel een boost met meer dan 300 essentiële hulpmiddelen, waardoor uw werk sneller en eenvoudiger verloopt, en profiteer van AI-functies voor slimmere gegevensverwerking en productiviteit.Nu verkrijgen
Kort samengevat is het verzenden van e-mails vanuit Excel zeer nuttig in ons dagelijks werk. Dit artikel gaat dieper in op diverse aspecten van e-mailverzending vanuit Excel. Mocht u andere benaderingen of eenvoudigere oplossingen kennen, laat dan gerust een reactie achter om mij daarvan op de hoogte te stellen.
Beste Office-productiviteitshulpmiddelen
Geef uw Excel-vaardigheden een boost met Kutools voor Excel en ervaar efficiëntie zoals nooit tevoren.Kutools voor Excel biedt meer dan 300 geavanceerde functies om de productiviteit te verhogen en Tijd besparen.Klik hier om de functie te krijgen die u het meest nodig heeft...
Office Tab brengt een tabbladinterface naar Office en maakt uw werk veel eenvoudiger
- Schakel tabbladbewerking en -lezen in voor Word, Excel, PowerPoint, Publisher, Access, Visio en Project.
- Open en maak meerdere documenten aan in nieuwe tabbladen binnen hetzelfde venster, in plaats van in afzonderlijke vensters.
- Verhoogt uw productiviteit met 50 % en bespaart u dagelijks honderden muisklikken!
Alle Kutools-add-ins in één installatieprogramma.
Kutools for Office bundelt add-ins voor Excel, Word, Outlook en PowerPoint, plus Office Tab Pro—ideaal voor teams die met meerdere Office-apps werken.
- Alles-in-één suite— add-ins voor Excel, Word, Outlook & PowerPoint plus Office Tab Pro
- Één installatieprogramma, één licentie— binnen enkele minuten klaar (MSI-geschikt)
- Werkt beter samen— gestroomlijnde productiviteit in alle Office-apps
- 30 dagen volledig functionele proefversie— geen registratie, geen creditcard
- Beste prijs-kwaliteitverhouding— bespaar ten opzichte van het afzonderlijk kopen van add-ins