Com escriure macros útils als missatges dOutlook 2016 i 2019?
Nou a VBA Macros per a l'automatització d'Outlook? Obteniu informació sobre com inserir codi VBA a Outlook 365 / 2016 / 2019.
Actualitzat: agost de 2021; Aplicable a Microsoft Outlook 365 / 2019 / 2016
Aquí teniu una nota que vam rebre d'un lector.
Gràcies per la vostra ajuda molt útil per a la codificació d'Outlook. Em pregunto si podeu compartir algun codi per ajudar a automatitzar l'enviament d'un correu electrònic a Outlook? Sé que hi ha diverses maneres d'enviar missatges recurrents, però estic especialment interessat a utilitzar VBA per a aquesta tasca.
Gràcies per la pregunta. L'enviament automàtic de correus electrònics sembla ser una de les tasques més útils i populars que podeu automatitzar amb VBA. Continueu llegint per obtenir més detalls i un script senzill per començar aquí.
Escriptura de VBA per enviar correus electrònics d'Outlook
En l'exemple més aviat senzill següent, cobrirem els passos següents:
Aquí teniu el codi VBA senzill per crear i enviar correus electrònics senzills automàticament. Tingueu en compte que heu de millorar fàcilment aquest script per incloure fitxers adjunts, tasques, etc., però comencem amb un script molt bàsic.
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
Drecera de macro d'Outlook VBA
És possible que vulgueu associar el codi VBA que acabeu d'escriure amb un botó d'ordres a l'Outlook. Això us permetrà iniciar-lo fàcilment des d'una drecera col·locada a la cinta d'Outlook.
A continuació s'explica com fer-ho:
Possibles problemes amb la configuració de macro VBA
Pot ser que s'hagi d'ajustar la configuració de la macro d'Outlook per executar macros. Si és així, aquí teniu com fer-ho.
A PowerShell, podeu utilitzar el cmdlet Send-MailMessage per enviar correu electrònic. Tanmateix, requereix que us autentiqueu al servidor de correu i no admet mètodes d'autenticació moderns, com ara OAuth i Autenticació moderna de Microsoft. Per tant, és molt més fàcil enviar un correu electrònic si teniu un perfil d'Outlook configurat a l'ordinador.
Aquí hi ha un exemple d'un script de PowerShell que llegeix dades d'un fitxer Excel i utilitza un perfil d'Outlook per enviar un correu electrònic a cada usuari:
# obre el fitxer Excel
$ExcelObj = Nou-Objecte -comobject Excel.Aplicació
$ExcelWorkBook = $ExcelObj.Workbooks.Open("C:\PS\user_list.xlsx")
$ExcelWorkSheet = $ExcelWorkBook.Sheets.Item("Full1")
# Obteniu el nombre de files omplertes en un fitxer xlsx
$rowcount=$ExcelWorkSheet.UsedRange.Rows.Count
# Recorre totes les files de la columna 1, començant per la segona fila (aquestes cel·les contenen els noms d'usuari i els correus electrònics).
for($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
# Genera el text del cos del missatge
$strSubj = " Estat del vostre compte al domini woshub.com "
$strBody = "Estimat " + $FullUsername
$strBody = $strBody + " `r`n El vostre compte al domini woshub.com es troba a " + $Status
$strBody = $strBody + "`r`n La data i l'hora de l'últim canvi de contrasenya és: " + $pwdchange
$strfile="C:\ps\" + $useremail + ".txt"
# Suposem que l'Outlook s'està executant, si no ho és, haureu d'iniciar-lo amb l'ordre $outlook = new-object -comobject outlook.application
$outlook = [Runtime.InteropServices.Marshal]::GetActiveObject("Outlook.Application")
$email = $outlook.CreateItem(0)
$email.To = $useremail
$email.Subject = $strSubj
$email.Body = $strBody
# Adjunteu un fitxer (si cal)
$email.Attachments.add($strfile)
#enviar el missatge de correu electrònic
$email.Send()
}
$ExcelWorkBook.close($true)
Aquest script de PowerShell suposa que l'Outlook s'està executant al vostre ordinador. L'script genera l'assumpte i el cos del correu electrònic per a cada adreça SMTP del destinatari al fitxer XLSX i adjunta el fitxer. Després envia el correu electrònic.
Nou a VBA Macros per a l'automatització d'Outlook? Obteniu informació sobre com inserir codi VBA a Outlook 365 / 2016 / 2019.
Apreneu a duplicar fàcilment els esdeveniments, les reunions i les cites del calendari d'Outlook a Office 365, 2016 i 2019.
Obteniu informació sobre com podeu dissenyar i crear formularis d'usuari personalitzats d'Outlook.
La safata d'entrada d'Outlook no s'actualitza automàticament? Obteniu informació sobre com podeu actualitzar automàticament la vostra safata d'entrada d'Outlook 365 / 2019 / 2016 / 2013 automàticament.
Obteniu informació sobre com afegir/incrustar i enviar una imatge gif al vostre correu electrònic de sortida d'Outlook 2016 i 2019.
Obteniu informació sobre com diagnosticar i resoldre problemes diferents de desconnexió de clients de Microsoft Outlook a Windows 10.
Apreneu a escriure macros d'Outlook per automatitzar l'enviament de correus electrònics.
Obteniu informació sobre com desactivar els recordatoris i les notificacions dels calendaris d'Outlook 2016/2019, tant a Windows com a MAC.
Obteniu informació sobre com millorar el vostre rendiment d'Outlook.
En aquesta publicació us ajudarà a canviar la contrasenya del vostre compte d'Outlook.com i a mantenir sincronitzat el vostre Windows a tots els vostres dispositius.