Note: The other languages of the website are Google-translated. Back to English

Hoe verzend ik een e-mail als op de knop wordt geklikt in Excel?

Stel dat u e-mail moet verzenden via Outlook door op een knop in het Excel-werkblad te klikken, hoe kunt u dat dan doen? Dit artikel introduceert een VBA-methode om dit in detail te bereiken.

Stuur een e-mail als op de knop wordt geklikt met VBA-code


Stuur een e-mail als op de knop wordt geklikt met VBA-code

Ga als volgt te werk om een ​​e-mail via Outlook te verzenden als in een Excel-werkmap op een opdrachtknop wordt geklikt.

1. Voeg een Command-knop in uw werkblad in door op te klikken Ontwikkelaar > Invoegen > Commandoknop (ActiveX-besturingselement). Zie screenshot:

2. Klik met de rechtermuisknop op de ingevoegde Command-knop en klik vervolgens op Bekijk code vanuit het rechtsklikmenu zoals hieronder afgebeeld.

3. In de opening Microsoft Visual Basic voor toepassingen vervangt u de originele code in het codevenster door het volgende VBA-script.

VBA-code: stuur een e-mail als op de knop wordt geklikt in Excel

Private Sub CommandButton1_Click()
'Updated by Extendoffice 2017/9/14
    Dim xOutApp As Object
    Dim xOutMail As Object
    Dim xMailBody As String
    On Error Resume Next
    Set xOutApp = CreateObject("Outlook.Application")
    Set xOutMail = xOutApp.CreateItem(0)
    xMailBody = "Body content" & vbNewLine & vbNewLine & _
              "This is line 1" & vbNewLine & _
              "This is line 2"
                  On Error Resume Next
    With xOutMail
        .To = "Email Address"
        .CC = ""
        .BCC = ""
        .Subject = "Test email send by button clicking"
        .Body = xMailBody
        .Display   'or use .Send
    End With
    On Error GoTo 0
    Set xOutMail = Nothing
    Set xOutApp = Nothing
End Sub

Notes:

1). Wijzig de hoofdtekst van de e-mail in het xMailBody regel in de code.

2). Vervang de Email adres met het e-mailadres van de ontvanger in de rij .To = "E-mailadres".

3). Specificeer de Cc- en Bcc-ontvangers zoals u nodig heeft in .CC = "" en .Bcc = "" secties.

4). Wijzig het onderwerp van de e-mail in de rij .Subject = "Test e-mail verzonden door te klikken op een knop".

4. druk de anders + Q toetsen tegelijk om het Microsoft Visual Basic voor toepassingen venster.

5. Schakel de ontwerpmodus uit door op te klikken Ontwikkelaar > Ontwerpmodus. Zie screenshot:

Vanaf nu wordt elke keer dat u op de Command-knop klikt, automatisch een e-mail gemaakt met gespecificeerde ontvangers, onderwerp en hoofdtekst. Stuur de e-mail door op de Verstuur knop.

Opmerking:: De VBA-code werkt alleen als u Outlook als uw e-mailprogramma gebruikt.

Verzend eenvoudig e-mail via Outlook op basis van de velden van de aangemaakte mailinglijst in Excel:

Het Stuur emails nut van Kutools for Excel helpt bij het verzenden van e-mail via Outlook op basis van de velden van de gemaakte mailinglijst in Excel.
Download en probeer het nu! (Gratis parcours van 30 dagen)


Gerelateerde artikelen:


De beste tools voor kantoorproductiviteit

Kutools voor Excel lost de meeste van uw problemen op en verhoogt uw productiviteit met 80%

  • visfuik: Snel invoegen complexe formules, grafieken en alles wat je eerder hebt gebruikt; Versleutel cellen met wachtwoord; Maak een mailinglijst en stuur e-mails ...
  • Super Formula-balk (bewerk eenvoudig meerdere regels tekst en formule); Lay-out lezen (gemakkelijk grote aantallen cellen lezen en bewerken); Plakken in gefilterd bereik...
  • Voeg cellen / rijen / kolommen samen zonder gegevens te verliezen; Gespleten cellen inhoud; Combineer dubbele rijen / kolommen... Voorkom dubbele cellen; Vergelijk Ranges...
  • Selecteer Dupliceren of Uniek Rijen; Selecteer lege rijen (alle cellen zijn leeg); Super zoeken en fuzzy zoeken in veel werkboeken; Willekeurige selectie ...
  • Exacte kopie Meerdere cellen zonder de formuleverwijzing te wijzigen; Maak automatisch verwijzingen naar meerdere bladen; Plaats kogels, Selectievakjes en meer ...
  • Extraheer tekst, Tekst toevoegen, Verwijderen op positie, Ruimte verwijderen; Paging-subtotalen maken en afdrukken; Converteren tussen celinhoud en opmerkingen...
  • Super filter (bewaar en pas filterschema's toe op andere bladen); Geavanceerd sorteren per maand / week / dag, frequentie en meer; Speciaal filter door vet, cursief ...
  • Combineer werkmappen en werkbladen; Tabellen samenvoegen op basis van sleutelkolommen; Gegevens splitsen in meerdere bladen; Batch Converteer xls, xlsx en PDF...
  • Meer dan 300 krachtige functies. Ondersteunt Office / Excel 2007-2019 en 365. Ondersteunt alle talen. Eenvoudig te implementeren in uw onderneming of organisatie. Gratis proefperiode van 30 dagen met volledige functies. 60 dagen geld-terug-garantie.
kte tabblad 201905

Office-tabblad Brengt een interface met tabbladen naar Office en maakt uw werk veel gemakkelijker

  • Schakel bewerken en lezen met tabbladen in Word, Excel, PowerPoint in, Publisher, Access, Visio en Project.
  • Open en maak meerdere documenten in nieuwe tabbladen van hetzelfde venster in plaats van in nieuwe vensters.
  • Verhoogt uw productiviteit met 50% en vermindert elke dag honderden muisklikken!
officetab onderkant
Comments (60)
Nog geen beoordelingen. Beoordeel als eerste!
Deze opmerking is gemaakt door de moderator op de site
Hallo, ik ben op zoek naar gegevens uit een draaitabelgegevens te verzenden, kunt u alstublieft helpen?
Alex
Deze opmerking is gemaakt door de moderator op de site
Is het mogelijk om het script zo te schrijven dat wanneer u op de knop klikt, het zichzelf aan de e-mail hecht zoals hierboven, maar de knop ook verwijdert? zodat de kopie van het bestand dat wordt gemaild niet langer de knop bevat?
Corey
Deze opmerking is gemaakt door de moderator op de site
Net onder ".Body = xMailBody" voeg je het volgende toe:
.Bijlagen.Add ActiveWorkbook.FullName
Danie
Deze opmerking is gemaakt door de moderator op de site
Hallo Danië.

Ik heb het gedeelte toegevoegd zoals je zei, maar de e-mail met de bijgevoegde werkmap heeft nog steeds de knoppen.
Ryno
Deze opmerking is gemaakt door de moderator op de site
hallo is het mogelijk om het zo in te stellen dat ik niet op verzenden hoef te drukken - het verzendt automatisch de e-mail????
choppa
Deze opmerking is gemaakt door de moderator op de site
Hoi,
Vervang de regel .Display door .Send in bovenstaande VBA-code.
crystal
Deze opmerking is gemaakt door de moderator op de site
het genereert slechts één e-mail en blijft de inhoud overschrijven in plaats van meerdere e-mailconcepten te openen.
Tina
Deze opmerking is gemaakt door de moderator op de site
Hallo allemaal, allereerst hartelijk dank, dit bericht is erg nuttig en werkt voor de bijlage. Dit werkt voor mij, maar er worden geen updates opgeslagen in het blad dat u op de knop Opslaan moet drukken. Ik zou graag willen dat de bijlage bevat wat er momenteel in het Excel-blad staat.

Ik kan dit bereiken door de ingebouwde Excel-functie voor e-mail te gebruiken, maar ik wilde een knop omdat ik het specifieke e-mailadres hard moet coderen.

Dus kort samengevat zou ik graag willen weten:

Ik zou graag willen weten of er een manier is om: nadat een gebruiker de Excel-werkmap heeft geopend en wijzigingen heeft aangebracht of de knop de bijlage met de updates zal behouden?
Ravin Chatelall
Deze opmerking is gemaakt door de moderator op de site
Good Day,
De code is geoptimaliseerd. Probeer het alsjeblieft en bedankt voor je reactie.

Private Sub CommandButton1_Click ()
'Bijgewerkt door' Extendoffice 2017 / 9/ 14
Dim xOutApp als object
Dim xOutMail als object
Dim xMailBody As String
On Error Resume Next
Stel xOutApp = CreateObject ("Outlook.Application") in
Stel xOutMail = xOutApp.CreateItem(0) in
ActiveWorkbook.Opslaan
xMailBody = "Lichaamsinhoud" & vbNewLine & vbNewLine & _
"Dit is regel 1" & vbNewLine & _
"Dit is lijn 2"
On Error Resume Next
Met xOutMail
.To = "E-mailadres"
.CC = ""
.BCC = ""
.Subject = "Test e-mail verzonden door te klikken op een knop"
.Body = xMailBody
.Bijlagen.Add ActiveWorkbook.FullName
.Weergeven 'of gebruik .Verzenden'
Eindigt met
On Error GoTo 0
Stel xOutMail = Niets in
Stel xOutApp = Niets in
End Sub
crystal
Deze opmerking is gemaakt door de moderator op de site
Hoe kan ik de actieve werkmap bij de e-mail voegen als ik op de knop druk?
Reinaldo Batista
Deze opmerking is gemaakt door de moderator op de site
Goede dag,
Net onder ".Body = xMailBody" voeg je het volgende toe:
.Bijlagen.Add ActiveWorkbook.FullName
crystal
Deze opmerking is gemaakt door de moderator op de site
kan ik met deze VBA-code verwijzen naar celinformatie in de hoofdtekst van de e-mail? Hoe verwijs ik bijvoorbeeld naar celwaarden naar de onderstaande code?

xMailBody = "Lichaamsinhoud" & vbNewLine & vbNewLine & _
"Dit is regel 1" & vbNewLine & _
"Dit is lijn 2"

Gebruik ook de code (.TO = "e-mailadres"). hoe kan ik het "e-mailadres" een e-mailadres laten ophalen uit een cel in de kolom ernaast.


Hartelijk dank,
erick
Deze opmerking is gemaakt door de moderator op de site
Is het mogelijk om binnen hetzelfde werkblad een tweede e-mailknop toe te voegen? Wanneer ik het probeer te doen, maakt het verbinding met de code van de originele e-mailknop. bedankt.
Hannah
Deze opmerking is gemaakt door de moderator op de site
Hoi,
U moet aan elke knop verschillende codes toewijzen.
crystal
Deze opmerking is gemaakt door de moderator op de site
kan ik met deze VBA-code verwijzen naar celinformatie in de hoofdtekst van de e-mail? Hoe verwijs ik bijvoorbeeld naar celwaarden naar de onderstaande code?

xMailBody = "Lichaamsinhoud" & vbNewLine & vbNewLine & _
"Dit is regel 1" & vbNewLine & _
"Dit is lijn 2"

Hartelijk dank,
Glenn
Deze opmerking is gemaakt door de moderator op de site
Hallo Glenn,
Gelieve de volgende code toe te passen. Bedankt voor je reactie.
xMailBody = [B5]
crystal
Deze opmerking is gemaakt door de moderator op de site
Is het mogelijk om, in plaats van de bijlage in de e-mail mee te sturen, een hyperlink naar het bestand (op SharePoint) te sturen?
Laurie
Deze opmerking is gemaakt door de moderator op de site
Hoi Laurie,
Kan je daar niet mee helpen. Bedankt voor je reactie.
crystal
Deze opmerking is gemaakt door de moderator op de site
Kan ik verwijzen naar de waarde in een cel in het onderwerp met string? Een variatie op het onderstaande?

.Subject = "Nieuw evenement:" & Target.Address = "$B$38"
Abi
Deze opmerking is gemaakt door de moderator op de site
Hallo Abi,
Wijzig de code in .Subject = "Nieuw evenement:" & [B38].
Bedankt voor je reactie.
crystal
Deze opmerking is gemaakt door de moderator op de site
Hi There,
Kan iemand mij helpen met de volgende eis?
Ik heb een Excel-blad met twee vervolgkeuzelijsten.

1 vervolgkeuzelijst - lijst met afdelingen

2 vervolgkeuzelijst - categorie

Wat ik wil is wanneer ik een afdeling en categorie selecteer uit de lijsten; (bijvoorbeeld als ik "verkoop" selecteer in afdeling en "maandrapport" in categorie)

Ik moet de pdf-versie van dat werkblad naar het verkoopteam e-mailen met als e-mailonderwerp het maandelijkse rapport.

Als ik "productie" selecteer in de afdelingslijst, zou de e-mail naar een groep mensen in de productie moeten gaan.

Ik waardeer het als je me hierbij kunt helpen

Rasike
Rasike
Deze opmerking is gemaakt door de moderator op de site
Hallo Rasike,
Sorry kan je daar niet mee helpen. Welkom bij het plaatsen van een vraag op ons forum: https://www.extendoffice.com/forum.html om meer Excel-ondersteuning te krijgen van onze Excel-professional of andere Excel-fans.
crystal
Deze opmerking is gemaakt door de moderator op de site
Hoi,

Hoe kan ik ervoor zorgen dat de e-mail automatisch mijn handtekening toevoegt vanuit Outlook?
John
Deze opmerking is gemaakt door de moderator op de site
Hallo John,
De onderstaande VBA-code kan u helpen het probleem op te lossen. Bedankt voor je reactie.

Private Sub CommandButton1_Click ()
'Bijgewerkt door' Extendoffice 2019 / 6/ 26
Dim xOutApp als object
Dim xOutMail als object
On Error Resume Next
Stel xOutApp = CreateObject ("Outlook.Application") in
Stel xOutMail = xOutApp.CreateItem(0) in
Met xOutMail
.Weergeven 'of gebruik .Verzenden'
.To = "E-mailadres"
.CC = ""
.BCC = ""
.Subject = "Test e-mail verzonden door te klikken op een knop"
.HTMLBody = "Dit is een test-e-mail die in Excel wordt verzonden" & "
" & .HTMLBody
'.Versturen
Eindigt met
On Error GoTo 0
Stel xOutMail = Niets in
Stel xOutApp = Niets in
End Sub
crystal
Deze opmerking is gemaakt door de moderator op de site
Moet je een Excel-gebruiker zijn om op de knop te drukken om een ​​e-mail te versturen? of moet alleen de persoon die de e-mail ontvangt een Outlook-gebruiker zijn?
Kaitlyn K.
Deze opmerking is gemaakt door de moderator op de site
Goede dag,
Omdat de e-mail via Outlook moet worden verzonden nadat u op de knop in Excel hebt geklikt, moet u Outlook op uw computer hebben geïnstalleerd om het te laten werken.
crystal
Deze opmerking is gemaakt door de moderator op de site
Ik wil het Excel-werkblad in de e-mail verzenden, maar het verzendt het niet. Hoe schrijf je code om een ​​document als e-mail te verzenden?
marcus
Deze opmerking is gemaakt door de moderator op de site
hallo marcus,
De onderstaande VBA-code kan u helpen het probleem op te lossen.

Sub SendWorkSheet()
'Update 20190626'
Dim xFile als string
Dim xFormaat zo lang
Dim Wb als werkboek
Dim Wb2 als werkboek
Dim FilePath als string
Dim FileName As String
Dim Outlook-app als object
Dim OutlookMail als object
On Error Resume Next
Application.ScreenUpdating = False
Stel Wb = Application.ActiveWorkbook in
ActiveSheet.Copy
Stel Wb2 = Application.ActiveWorkbook in
Selecteer Case Wb.Bestandsindeling
Case xlOpenXMLWerkboek:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroIngeschakeld:
Als Wb2.HasVBProject Dan
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Anders
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
End If
Case Excel8:
xFile = ".xls"
xFormaat = Excel8
Case xlExcel12:
xFile = ".xlsb"
xFormaat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
Bestandsnaam = Wb.Naam & Formaat (Nu, "dd-mmm-jj h-mm-ss")
Stel OutlookApp = CreateObject ("Outlook.Application") in
Stel OutlookMail = OutlookApp.CreateItem(0) in
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
Met OutlookMail
.To = "skyyang @extendoffice.com "
.CC = ""
.BCC = ""
.Subject = "kte features"
.Body = "Controleer en lees dit document."
.Bijlagen.Wb2.FullName toevoegen
.Scherm
'.Versturen
Eindigt met
Wb2.Sluiten
Kill FilePath & FileName & xFile
Stel OutlookMail = niets in
Stel OutlookApp = Niets in
Application.ScreenUpdating = True
End Sub
crystal
Deze opmerking is gemaakt door de moderator op de site
Hoe kan ik het actieve werkblad bij de e-mail voegen als ik op de knop druk?
Grant
Deze opmerking is gemaakt door de moderator op de site
Hallo Grant,
Klik met de rechtermuisknop op de knop en selecteer Bekijk code, kopieer vervolgens onderstaande code tussen de Private Sub- en End Sub-regels. Hoop dat ik kan helpen. Bedankt voor je reactie.

Dim xFile als string
Dim xFormaat zo lang
Dim Wb als werkboek
Dim Wb2 als werkboek
Dim FilePath als string
Dim FileName As String
Dim Outlook-app als object
Dim OutlookMail als object
On Error Resume Next
Application.ScreenUpdating = False
Stel Wb = Application.ActiveWorkbook in
ActiveSheet.Copy
Stel Wb2 = Application.ActiveWorkbook in
Selecteer Case Wb.Bestandsindeling
Case xlOpenXMLWerkboek:
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
Case xlOpenXMLWorkbookMacroIngeschakeld:
Als Wb2.HasVBProject Dan
xFile = ".xlsm"
xFormat = xlOpenXMLWorkbookMacroEnabled
Anders
xFile = ".xlsx"
xFormat = xlOpenXMLWorkbook
End If
Case Excel8:
xFile = ".xls"
xFormaat = Excel8
Case xlExcel12:
xFile = ".xlsb"
xFormaat = xlExcel12
End Select
FilePath = Environ$("temp") & "\"
Bestandsnaam = Wb.Naam & Formaat (Nu, "dd-mmm-jj h-mm-ss")
Stel OutlookApp = CreateObject ("Outlook.Application") in
Stel OutlookMail = OutlookApp.CreateItem(0) in
Wb2.SaveAs FilePath & FileName & xFile, FileFormat:=xFormat
Met OutlookMail
.To = "skyyang @extendoffice.com "
.CC = ""
.BCC = ""
.Subject = "kte features"
.Body = "Controleer en lees dit document."
.Bijlagen.Wb2.FullName toevoegen
.Scherm
'.Versturen
Eindigt met
Wb2.Sluiten
Kill FilePath & FileName & xFile
Stel OutlookMail = niets in
Stel OutlookApp = Niets in
Application.ScreenUpdating = True
crystal
Deze opmerking is gemaakt door de moderator op de site
Hoi,

Is er een manier om de bestandsnaam te wijzigen in de huidige datum wanneer deze bij de e-mail wordt gevoegd?
Kris
Deze opmerking is gemaakt door de moderator op de site
Hoi,

Ik heb aan een blad gewerkt, maar ik krijg het niet af. ik hoop dat jullie me kunnen helpen :)

Het bestand zelf moet een xltm (sjabloon) zijn en het moet het blad zelf bij de post voegen.

En een automatische handtekening, dan zou ik heel blij zijn.

Bij voorbaat dank /Dr. Nang
Montuella Nang
Deze opmerking is gemaakt door de moderator op de site
Hallo, ik heb een spreadsheet met 80 individuele staafrekeningen en heb met veel succes VBA-code op deze pagina gebruikt. In de hoofdtekst van de e-mail wil ik echter het specifieke cellenbereik van een account kopiëren en plakken tijdens het verzenden, zodat de klant een geschiedenis kan hebben. Kun je hiervoor helpen met de VBA-code?
Terence Letley
Deze opmerking is gemaakt door de moderator op de site
Hoi! Hartelijk dank hiervoor. Het is fantastisch geholpen.

Is het mogelijk om een ​​actief werkblad te versturen door op een knop te drukken in plaats van de volledige werkmap?

Bedankt!
Courtney
Er zijn nog geen reacties geplaatst
Laad meer
Laat uw commentaar
Posten als gast
×
Beoordeel dit bericht:
0  Personages
Voorgestelde locaties