Hvordan skrive nyttige makroer i Outlook 2016- og 2019-meldinger?
Ny til VBA-makroer for Outlook-automatisering? Lær hvordan du setter inn VBA-kode i Outlook 365 / 2016 / 2019.
Oppdatert: august 2021; Gjelder for Microsoft Outlook 365 / 2019 / 2016
Her er et notat vi fikk fra en leser.
Takk for din svært nyttige Outlook-kodingshjelp. Jeg lurer på om du kan dele noen kode for å automatisere sending av e-post i Outlook? Jeg vet at det er flere måter å sende tilbakevendende meldinger på, men jeg er spesielt interessert i å bruke VBA til denne oppgaven.
Takk for spørsmålet. Automatisk sending av e-poster ser ut til å være blant de mest nyttige og populære oppgavene du kan automatisere ved hjelp av VBA. Les videre for flere detaljer og et enkelt skript for å komme i gang her.
Skrive VBA for å sende Outlook-e-post
I det ganske enkle eksemplet nedenfor dekker vi følgende trinn:
Her er den enkle VBA-koden for automatisk å opprette og sende enkle e-poster. Merk at du enkelt skal forbedre dette skriptet til å inkludere filvedlegg, oppgaver etc', men la oss starte med et veldig grunnleggende skript.
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
Outlook VBA makro snarvei
Du vil kanskje se på å knytte VBA-koden du nettopp skrev med en kommandoknapp i Outlook. Dette lar deg enkelt starte den fra en snarvei plassert i Outlook-båndet.
Slik gjør du det:
Mulige problemer med VBA-makroinnstillinger
Outlook-makroinnstillingene dine må kanskje justeres for å kjøre makroer. I så fall, her er hvordan du gjør det.
I PowerShell kan du bruke Send-MailMessage-cmdleten for å sende e-post. Det krever imidlertid at du autentiserer til e-postserveren, og det støtter ikke moderne autentiseringsmetoder, som OAuth og Microsoft Modern Authentication. Så det er mye enklere å sende en e-post hvis du har en Outlook-profil konfigurert på datamaskinen.
Her er et eksempel på et PowerShell-skript som leser data fra en Excel fil og bruker en Outlook-profil til å sende en e-post til hver bruker:
# åpne Excel-filen
$ExcelObj = New-Object -comobject Excel.Application
$ExcelWorkBook = $ExcelObj.Workbooks.Open("C:\PS\user_list.xlsx")
$ExcelWorkSheet = $ExcelWorkBook.Sheets.Item("Sheet1")
# Få antall fylte rader i en xlsx-fil
$rowcount=$ExcelWorkSheet.UsedRange.Rows.Count
# Gå gjennom alle radene i kolonne 1, fra den andre raden (disse cellene inneholder brukernavn og e-post).
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
# Generer meldingsbrødtekst
$strSubj = " Kontostatusen din på woshub.com-domenet "
$strBody = "Kjære " + $FullUsername
$strBody = $strBody + " `r`n Kontoen din i woshub.com-domenet er i " + $Status
$strBody = $strBody + "`r`n Datoen og klokkeslettet for siste passordendring er: " + $pwdchange
$strfile="C:\ps\" + $useremail + ".txt"
# Vi antar at Outlook kjører, hvis det ikke er det, må du starte det med kommandoen $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
# Legg ved en fil (hvis nødvendig)
$email.Attachments.add($strfile)
#send e-postmeldingen
$email.Send()
}
$ExcelWorkBook.close($true)
Dette PowerShell-skriptet forutsetter at Outlook kjører på datamaskinen din. Skriptet genererer emnet og brødteksten til e-posten for hver mottakers SMTP-adresse i XLSX-filen og legger ved filen. Sender deretter e-posten.
Ny til VBA-makroer for Outlook-automatisering? Lær hvordan du setter inn VBA-kode i Outlook 365 / 2016 / 2019.
Lær hvordan du enkelt dupliserer Outlook-kalenderhendelser, møter og avtaler i Office 365, 2016 og 2019.
Lær hvordan du kan designe og lage tilpassede Outlook-brukerskjemaer.
Outlook-innboksen oppdateres ikke automatisk? Finn ut hvordan du automatisk kan oppdatere Outlook 365 / 2019 / 2016 / 2013-innboksen automatisk.
Lær hvordan du legger til / bygger inn og sender et gif-bilde til Outlook 2016 og 2019 utgående e-post.
Lær hvordan du diagnostiserer og feilsøker forskjellige Microsoft Outlook-klientfrakoblingsproblemer i Windows 10.
Lær å skrive Outlook-makroer for å automatisere sending av e-post.
Lær hvordan du deaktiverer påminnelser og varsler fra Outlook 2016 / 2019-kalendere, både på Windows og MAC.
Lær hvordan du forbedrer Outlook-ytelsen.
I dette innlegget hjelper du deg med å endre passordet for Outlook.com-kontoen din og holde Windows synkronisert på tvers av alle enhetene dine.