Hvordan sender man en e-mail i Outlook med VBA?

Opdateret: august 2021; Gælder for Microsoft Outlook 365 / 2019 / 2016

Her er en note, vi fik fra en læser.

Tak for din meget nyttige Outlook-kodningshjælp. Jeg spekulerer på, om du kan dele noget kode for at hjælpe med at automatisere afsendelse af en e-mail i Outlook? Jeg ved, at der er flere måder at sende tilbagevendende besked på, men jeg er specifikt interesseret i at bruge VBA til denne opgave.

Tak for spørgsmålet. Automatisk afsendelse af e-mails ser ud til at være blandt de mest nyttige og populære opgaver, du kan automatisere ved hjælp af VBA. Læs videre for flere detaljer og et simpelt script til at komme i gang her.

Skrivning af VBA til afsendelse af Outlook-e-mails

I det ret enkle eksempel nedenfor dækker vi følgende trin:

  1. Først og fremmest bruger vi VBA Outlook-objektmodellen til at oprette et nyt e-mail-element.
  2. Så går vi videre og indstiller beskedens betydning, modtagere (adskilt af semikolon) og brødtekststil og indhold.
  3. Derefter viser vi meddelelsen i din Microsoft Outlook-applikation.
  4. Til sidst vil vi gå videre og sende det til modtagerne.

Her er den simple VBA-kode til automatisk at oprette og sende simple e-mails. Bemærk, at du nemt skal forbedre dette script til at inkludere vedhæftede filer, opgaver osv', men lad os starte med et meget grundlæggende script.

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 genvej

Du vil måske se på at knytte den VBA-kode, du lige har skrevet, med en kommandoknap i Outlook. Dette giver dig mulighed for nemt at starte den fra en genvej placeret i Outlook-båndet.

Sådan gør du det:

  1. Først skal du gå videre og åbne Microsoft Outlook.
  2. Tryk på Fil og vælg derefter Indstillinger
  3. Gå nu videre og vælg Tilpas bånd.
  4. I sektionen Tilpas bånd vil du bemærke listen Vælg kommandoer fra.
  5. Vælg Makroer
  6. Vælg derefter din nyoprettede VBA-kode, i vores tilfælde skal navnet være SendMail.
  7. Tryk derefter på Tilføj og derefter OK. Du kan eventuelt tildele et ikon til din makro.
  8. Din makro vil være tilgængelig på værktøjslinjen Hurtig adgang i øverste venstre side af dit Outlook-program.

Mulige problemer med VBA-makroindstillinger

Dine Outlook-makroindstillinger skal muligvis justeres for at køre makroer. Hvis ja, her er hvordan du gør det.

Bonus: Send en e-mail fra Outlook ved hjælp af PowerShell

I PowerShell kan du bruge Send-MailMessage cmdlet til at sende e-mail. Det kræver dog, at du godkender til mailserveren, og det understøtter ikke moderne godkendelsesmetoder, såsom OAuth og Microsoft Modern Authentication. Så det er meget nemmere at sende en e-mail, hvis du har en Outlook-profil konfigureret på din computer.

Her er et eksempel på et PowerShell-script, der læser data fra en Excel -fil og bruger en Outlook-profil til at sende en e-mail til hver bruger:

# åbn Excel-filen
$ExcelObj = New-Object -comobject Excel.Application
$ExcelWorkBook = $ExcelObj.Workbooks.Open("C:\PS\user_list.xlsx")
$ExcelWorkSheet = $ExcelWorkBook.Sheets.Item("Sheet1")
# Få antallet af udfyldte rækker i en xlsx-fil
$rowcount=$ExcelWorkSheet.UsedRange.Rows.Count
# Gå gennem alle rækkerne i kolonne 1, startende fra anden række (disse celler indeholder brugernavne og e-mails).
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 beskedens brødtekst
$strSubj = " Din kontostatus på woshub.com-domænet "
$strBody = "Kære " + $FullUsername
$strBody = $strBody + " `r`n Din konto i woshub.com-domænet er i " + $Status
$strBody = $strBody + "`r`n Datoen og klokkeslættet for sidste adgangskodeændring er: " +  $pwdchange
$strfile="C:\ps\" + $useremail + ".txt"
# Vi antager, at Outlook kører, hvis det ikke er det, skal 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
# Vedhæft en fil (hvis nødvendigt)
$email.Attachments.add($strfile)
#send e-mailbeskeden
$email.Send()
}
$ExcelWorkBook.close($true)

powershell-script til at sende e-mail fra outlook-konfigureret profil

Dette PowerShell-script antager, at Outlook kører på din computer. Scriptet genererer emnet og brødteksten for e-mailen for hver modtagers SMTP-adresse i XLSX-filen og vedhæfter filen. Sender derefter e-mailen.


Hvordan skriver man nyttige makroer i Outlook 2016 og 2019-meddelelser?

Hvordan skriver man nyttige makroer i Outlook 2016 og 2019-meddelelser?

Ny til VBA-makroer til Outlook-automatisering? Lær, hvordan du indsætter VBA-kode i Outlook 365/2016/2019.

Hvordan duplikere møder og begivenheder i din Outlook 2019/365/2016 kalender?

Hvordan duplikere møder og begivenheder i din Outlook 2019/365/2016 kalender?

Lær, hvordan du nemt duplikerer Outlook-kalenderbegivenheder, møder og aftaler i Office 365, 2016 og 2019.

Outlook-formularer: Hvordan opretter man formularer, der kan udfyldes i Microsoft Office 2016 / 2019?

Outlook-formularer: Hvordan opretter man formularer, der kan udfyldes i Microsoft Office 2016 / 2019?

Lær, hvordan du kan designe og oprette brugerdefinerede Outlook-brugerformularer.

Hvordan opdaterer jeg min Outlook-indbakke, når den ikke opdateres automatisk?

Hvordan opdaterer jeg min Outlook-indbakke, når den ikke opdateres automatisk?

Outlook-indbakke opdateres ikke automatisk? Lær, hvordan du automatisk kan opdatere din Outlook 365 / 2019 / 2016 / 2013 indbakke automatisk.

Hvordan tilføjer man gif-billeder i Outlook 2016 / 2019 e-mail-tekst eller signatur?

Hvordan tilføjer man gif-billeder i Outlook 2016 / 2019 e-mail-tekst eller signatur?

Lær, hvordan du tilføjer / indlejrer og sender et gif-billede til din Outlook 2016 og 2019 udgående e-mail.

Hvorfor Outlook er offline eller afbrudt, og hvordan genoprettes forbindelsen?

Hvorfor Outlook er offline eller afbrudt, og hvordan genoprettes forbindelsen?

Lær, hvordan du diagnosticerer og fejlfinder forskellige Microsoft Outlook-klientafbrydelsesproblemer i Windows 10.

Hvordan sender man en e-mail i Outlook med VBA?

Hvordan sender man en e-mail i Outlook med VBA?

Lær at skrive Outlook-makroer for at automatisere afsendelse af e-mail.

Stop Outlook 365 / 2019 / 2016-kalendermeddelelser for møder og aftaler i at dukke op

Stop Outlook 365 / 2019 / 2016-kalendermeddelelser for møder og aftaler i at dukke op

Lær, hvordan du deaktiverer påmindelser og meddelelser fra Outlook 2016/2019-kalendere, både på Windows og MAC.

Hvordan får man Microsoft Outlook til at køre hurtigere (version 2019/365/2016)?

Hvordan får man Microsoft Outlook til at køre hurtigere (version 2019/365/2016)?

Lær, hvordan du forbedrer din Outlook-ydeevne.

Hvordan ændrer du din Hotmail-adgangskode i Windows, Android-telefon, iPhone eller iPad?

Hvordan ændrer du din Hotmail-adgangskode i Windows, Android-telefon, iPhone eller iPad?

I dette indlæg hjælper du dig godt med at ændre adgangskoden til din Outlook.com-konto og holde din Windows synkroniseret på tværs af alle dine enheder.