Comment écrire des macros utiles dans les messages Outlook 2016 et 2019 ?
Nouveau sur les macros VBA pour l
Mise à jour : août 2021 ; Applicable à Microsoft Outlook 365/2019/2016
Voici une note que nous avons reçue d'un lecteur.
Merci pour votre aide très utile au codage Outlook. Je me demande si vous pouvez partager du code pour aider à automatiser l'envoi d'un e-mail dans Outlook ? Je sais qu'il existe plusieurs façons d'envoyer des messages récurrents, mais je suis particulièrement intéressé par l'utilisation de VBA pour cette tâche.
Merci pour la question. L'envoi automatique d'e-mails semble être l'une des tâches les plus utiles et les plus populaires que vous pouvez automatiser à l'aide de VBA. Lisez la suite pour plus de détails et un script simple pour vous aider à démarrer ici.
Écriture de VBA pour l'envoi d'e-mails Outlook
Dans l'exemple assez simple ci-dessous, nous couvrirons les étapes suivantes :
Voici le code VBA simple pour créer et envoyer automatiquement des e-mails simples. Notez que vous devez facilement améliorer ce script pour inclure des pièces jointes, des tâches, etc., mais commençons par un script très basique.
Sub SendMail()
Dim MyEmail As MailItem
Set MyEmail = Application.CreateItem(olMailItem)
With MyEmail
.To = ""
.Importance = olImportanceHigh
.Subject = ""
.Body = ""
.BodyFormat = olFormatHTML
.Display
End With
'I purposely commented the next line, uncomment it by removing the "'" sign to send your email.
' MyEmail.Send
End Sub
Raccourci macro Outlook VBA
Vous voudrez peut-être envisager d'associer le code VBA que vous venez d'écrire à un bouton de commande dans Outlook. Cela vous permettra de le lancer facilement depuis un raccourci placé dans le ruban Outlook.
Voici comment procéder :
Problèmes possibles avec les paramètres de macro VBA
Vos paramètres de macro Outlook doivent peut-être être réglés pour exécuter des macros. Si oui, voici comment procéder.
Dans PowerShell, vous pouvez utiliser l'applet de commande Send-MailMessage pour envoyer des e-mails. Cependant, il nécessite que vous vous authentifiiez auprès du serveur de messagerie et ne prend pas en charge les méthodes d'authentification modernes, telles que OAuth et Authentification moderne Microsoft. Il est donc beaucoup plus facile d'envoyer un e-mail si vous disposez d'un profil Outlook configuré sur votre ordinateur.
Voici un exemple de script PowerShell qui lit les données d'un fichier Excel et utilise un profil Outlook pour envoyer un e-mail à chaque utilisateur :
# ouvrir le fichier Excel
$ExcelObj = Nouvel-Objet -comobject Excel.Application
$ExcelWorkBook = $ExcelObj.Workbooks.Open("C:\PS\user_list.xlsx")
$ExcelWorkSheet = $ExcelWorkBook.Sheets.Item("Sheet1")
# Récupère le nombre de lignes remplies dans un fichier xlsx
$rowcount=$ExcelWorkSheet.UsedRange.Rows.Count
# Parcourez toutes les lignes de la colonne 1, en commençant par la deuxième ligne (ces cellules contiennent les noms d'utilisateur et les e-mails).
pour($i=2;$i -le $rowcount;$i++){
$useremail = $ExcelWorkSheet.Columns.Item(1).Rows.Item($i).Text
$FullUsername = $ExcelWorkSheet.Columns.Item(2).Rows.Item($i).Text
$Status = $ExcelWorkSheet.Columns.Item(4).Rows.Item($i).Text
$pwdchange = $ExcelWorkSheet.Columns.Item(3).Rows.Item($i).Text
# Générer le corps du message
$strSubj = " Statut de votre compte sur le domaine woshub.com "
$strBody = "Cher" + $FullUsername
$strBody = $strBody + " `r`n Votre compte dans le domaine woshub.com est dans " + $Statut
$strBody = $strBody + "`r`n La date et l'heure du dernier changement de mot de passe sont : " + $pwdchange
$strfile="C:\ps\" + $useremail + ".txt"
# Nous supposons qu'Outlook est en cours d'exécution, si ce n'est pas le cas, vous devrez le démarrer avec la commande $outlook = new-object -comobject Outlook.application
$outlook = [Runtime.InteropServices.Marshal]::GetActiveObject("Outlook.Application")
$email = $outlook.CreateItem(0)
$email.To = $useremail
$email.Sujet = $strSubj
$email.Body = $strBody
# Joindre un fichier (si nécessaire)
$email.Attachments.add($strfile)
#envoyer le message électronique
$email.Send()
$ExcelWorkBook.close($true)
Ce script PowerShell suppose qu'Outlook est en cours d'exécution sur votre ordinateur. Le script génère l'objet et le corps de l'e-mail pour chaque adresse SMTP de destinataire dans le fichier XLSX et joint le fichier. Envoie ensuite l'e-mail.
Nouveau sur les macros VBA pour l
Découvrez comment dupliquer facilement les événements, les réunions et les rendez-vous du calendrier Outlook dans Office 365, 2016 et 2019.
Découvrez comment ajouter facilement des rappels à vos événements de calendrier dans Microsoft Outlook 365.
Découvrez comment modifier la couleur et la taille des listes à puces dans Word, Excel et PowerPoint avec ce guide détaillé. Suivez les étapes faciles pour personnaliser vos listes.
Découvrez comment ajouter et intégrer un bouton personnalisé Outlook dans le corps de votre e-mail avec des instructions claires et précises.
Apprenez à ajouter / intégrer et envoyer une image GIF à votre courrier électronique sortant Outlook 2016 et 2019.
La boîte de réception Outlook ne se met pas à jour automatiquement ? Découvrez comment actualiser automatiquement votre boîte de réception Outlook 365/2019/2016/2013.
Découvrez comment vous pouvez concevoir et créer des formulaires utilisateur personnalisés Outlook grâce à des étapes simples.
Comment créer un modèle d'e-mail dans Microsoft Outlook.com 365 ?
Votre boîte aux lettres est-elle encombrée d'entrées d'e-mails en double ? Découvrez comment arrêter de recevoir et supprimer les messages redondants dans une boîte aux lettres Outlook 365/2019/2016 sous MAC et Windows.