VBA Envoyer un e-mail depuis Excel

Code VBA pour envoyer des e-mails depuis Excel

Dans VBA pour envoyer un e-mail à partir d'Excel, nous pouvons automatiser notre fonctionnalité de messagerie afin que nous puissions envoyer automatiquement des e-mails à plusieurs utilisateurs à la fois, pour ce faire, nous devons nous rappeler que cela est fait par Outlook, un autre produit de Outlook, nous devons donc activer Outlook script dans VBA pour le faire et une fois que cela est fait, nous utilisons la méthode .Application pour utiliser les fonctionnalités Outlook.

La polyvalence de VBA est tout simplement incroyable. La raison pour laquelle les codeurs VBA aiment exceller, car en utilisant VBA, nous pouvons non seulement travailler dans Excel, mais également accéder à d'autres outils Microsoft. Nous pouvons accéder à PowerPoint, Word et Outlook en utilisant VBA. Ce qui m'a impressionné, c'est quand j'ai entendu parler de «l'envoi de courriels depuis Excel lui-même». Oui, il est vrai que nous pouvons envoyer des e-mails depuis Excel. Dans cet article, nous allons vous montrer comment envoyer des e-mails à partir d'Excel avec des pièces jointes à l'aide du codage VBA.

Définir la référence à la bibliothèque Microsoft Office

Nous devons envoyer des e-mails depuis Outlook. Étant donné qu'Outlook est un objet extérieur, la première chose que nous devons faire est de définir la référence d'objet sur « Microsoft Outlook 16.0 Object Library ».

  • Dans VBA, allez dans Outils> Références

  • Nous allons maintenant voir la bibliothèque de références d'objets. Dans cette fenêtre, nous devons définir la référence à «Microsoft Outlook 16.0 Object Library»

  • Après avoir défini la référence de l'objet, cliquez sur OK.

Maintenant, nous pouvons accéder à l'objet Outlook en codage VBA.

13 étapes faciles pour envoyer des e-mails à partir d'Excel

Écrire le code pour envoyer un e-mail avec une pièce jointe à partir d'Excel est assez compliqué, mais cela vaut la peine de passer du temps.

Vous pouvez télécharger ce modèle Excel d'envoi d'e-mail VBA ici - Modèle Excel d'envoi d'e-mail VBA

Suivez les étapes ci-dessous pour rédiger votre première macro Excel par e-mail.

Étape 1

Démarrez la sous-procédure dans VBA.

Code:

 Sub SendEmail_Example1 () End Sub 

Étape 2

Déclarez la variable Outlook.Application

Code:

 Dim EmailApp As Outlook.Application 'Pour faire référence à l'application Outlook 

Étape 3

La variable ci-dessus est une variable objet. Nous devons créer une instance d'un nouvel objet séparément. Pour créer une nouvelle instance de l'objet extérieur ci-dessous est le code.

Code:

 Set EmailApp = New Outlook.Application 'Pour lancer l'application Outlook 

Étape 4

Maintenant, pour écrire l'e-mail, nous déclarons une autre variable comme «Outlook.MailItem».

Code:

 Dim EmailItem As Outlook.MailItem 'Pour faire référence à un nouvel e-mail Outlook 

Étape # 5

Afin de lancer un nouvel e-mail, nous devons définir la référence à notre variable précédente en tant que CreateItem.

Code:

 Set EmailItem = EmailApp.CreateItem (olMailItem) 'Pour lancer un nouvel e-mail Outlook 

Ok, maintenant la variable «EmailApp» lancera les perspectives et dans la variable «EmailItem», nous pouvons commencer à écrire le courriel.

Étape # 6

Nous devons maintenant savoir quels sont les éléments dont nous disposons lors de la rédaction d'un e-mail. La première chose est que nous devons décider à qui nous envoyons l'e-mail. Donc, pour cela, nous devons accéder à la propriété «TO».

Étape # 7

Entrez l'adresse e-mail du destinataire entre guillemets.

Code:

EmailItem.To = "[email protected]"

Étape # 8

Après vous être adressé au destinataire principal, si vous souhaitez envoyer quelqu'un en CC dans l'e-mail, nous pouvons utiliser la propriété «CC».

Code:

EmailItem.CC = "[email protected]"

Étape # 9

Après le CC, nous pouvons également définir l'ID de messagerie BCC.

Code:

EmailItem.BCC = "[email protected]"

Étape # 10

Nous devons maintenant inclure l'objet de l'e-mail que nous envoyons.

Code:

EmailItem.Subject = "Tester l'e-mail d'Excel VBA"

Étape # 11

Nous devons maintenant écrire le corps de l'e-mail en utilisant le type HTML Body.

Code:

EmailItem.HTMLBody = "Hi," & vbNewLine & vbNewLine & "This is my first email from Excel" & _ vbNewLine & vbNewLine & _ "Regards," & vbNewLine & _ "VBA Coder" 'VbNewLine is the VBA Constant to insert a new line 

Step #12

If we want to add an attachment as the current workbook we are working on then we need to use attachments property. First, declare a variable source as a string.

Code:

 Dim Source As String 

Then in this variable write ThisWorkbook.FullName after Email body.

Code:

Source = ThisWorkbook.FullName

In this VBA Code, ThisWorkbook is used for the current workbook and .FullName is used to get the full name of the worksheet.

Then write the following code to attach the file.

Code:

EmailItem.Attachments.Add Source

Step #13

Now finally we need to send the email to the mentioned email ID’s. This can be done by using “Send” method.

Code:

EmailItem.Send

Ok, we are done with the coding part.

Code:

 Sub SendEmail_Example1() Dim EmailApp As Outlook.Application Dim Source As String Set EmailApp = New Outlook.Application Dim EmailItem As Outlook.MailItem Set EmailItem = EmailApp.CreateItem(olMailItem) EmailItem.To = "[email protected]" EmailItem.CC = "[email protected]" EmailItem.BCC = "[email protected]" EmailItem.Subject = "Test Email From Excel VBA" EmailItem.HTMLBody = "Hi," & vbNewLine & vbNewLine & "This is my first email from Excel" & _ vbNewLine & vbNewLine & _ "Regards," & vbNewLine & _ "VBA Coder" Source = ThisWorkbook.FullName EmailItem.Attachments.Add Source EmailItem.Send End Sub 

Run the above code and it will send the email with the mentioned body of the email with the current workbook as the attachment.