Как да напиша полезни макроси в съобщенията на Outlook 2016 и 2019?
Нов сте в VBA макроси за автоматизация на Outlook? Научете как да вмъкнете VBA код в Outlook 365 / 2016 / 2019.
Актуализирано: август 2021 г.; Приложимо за Microsoft Outlook 365 / 2019 / 2016
Ето бележка, която получихме от читател.
Благодаря за вашата много полезна помощ за кодиране на Outlook. Чудя се дали можете да споделите някакъв код, който да помогне за автоматизирането на изпращането на имейл в Outlook? Знам, че има няколко начина за изпращане на повтарящи се съобщения, но специално се интересувам от използването на VBA за тази задача.
Благодаря за въпроса. Автоматичното изпращане на имейли изглежда е сред най-полезните и популярни задачи, които можете да автоматизирате с помощта на VBA. Прочетете за повече подробности и прост скрипт, за да започнете тук.
Писане на VBA за изпращане на имейли на Outlook
В доста прост пример по-долу ще покрием следните стъпки:
Ето простият VBA код за автоматично създаване и изпращане на прости имейли. Имайте предвид, че трябва лесно да подобрите този скрипт, за да включите прикачени файлове, задачи и т.н.“, но нека започнем с един много основен скрипт.
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
Може да искате да разгледате свързването на VBA кода, който току-що написахте, с команден бутон в Outlook. Това ще ви позволи лесно да го стартирате от пряк път, поставен в лентата на Outlook.
Ето как да направите това:
Възможни проблеми с настройките на макросите на VBA
Може да се наложи настройките на вашите макроси в Outlook да бъдат настроени, за да стартирате макроси. Ако е така, ето как да направите това.
В PowerShell можете да използвате кратката команда Send-MailMessage за изпращане на имейл. Той обаче изисква да се удостоверите на пощенския сървър и не поддържа съвременни методи за удостоверяване, като OAuth и Microsoft Modern Authentication. Така че е много по-лесно да изпратите имейл, ако имате профил в Outlook, конфигуриран на вашия компютър.
Ето пример за скрипт PowerShell, който чете данни от Excel файл и използва профил в Outlook, за да изпрати имейл до всеки потребител:
# отваряне на Excel файл
$ExcelObj = New-Object -comobject Excel.Application
$ExcelWorkBook = $ExcelObj.Workbooks.Open("C:\PS\user_list.xlsx")
$ExcelWorkSheet = $ExcelWorkBook.Sheets.Item("Sheet1")
# Вземете броя на попълнените редове в xlsx файл
$rowcount=$ExcelWorkSheet.UsedRange.Rows.Count
# Преминете през всички редове в колона 1, като започнете от втория ред (тези клетки съдържат потребителските имена и имейлите).
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
# Генериране на основен текст на съобщение
$strSubj = " Състояние на вашия акаунт в домейна woshub.com "
$strBody = "Уважаеми " + $FullUsername
$strBody = $strBody + " `r`n Вашият акаунт в домейна woshub.com е в " + $Status
$strBody = $strBody + "`r`n Датата и часът на последната промяна на паролата е: " + $pwdchange
$strfile="C:\ps\" + $useremail + ".txt"
# Предполагаме, че Outlook работи, ако не е, ще трябва да го стартирате с командата $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
# Прикачете файл (ако е необходимо)
$email.Attachments.add($strfile)
#изпратете имейл съобщението
$email.Send()
}
$ExcelWorkBook.close($true)
Този скрипт на PowerShell предполага, че Outlook работи на вашия компютър. Скриптът генерира темата и тялото на имейла за всеки SMTP адрес на получател в XLSX файла и прикачва файла. След това изпраща имейла.
Нов сте в VBA макроси за автоматизация на Outlook? Научете как да вмъкнете VBA код в Outlook 365 / 2016 / 2019.
Научете как лесно да дублирате събития, срещи и срещи в календара на Outlook в Office 365, 2016 и 2019.
Научете как можете да проектирате и създавате потребителски формуляри на Outlook.
Входящата кутия на Outlook не се актуализира автоматично? Научете как можете автоматично да опреснявате входящата си кутия в Outlook 365 / 2019 / 2016 / 2013 автоматично.
Научете как да добавяте/вграждате и изпращате gif изображение към вашия изходящ имейл за Outlook 2016 и 2019.
Научете как да диагностицирате и отстранявате различни проблеми при прекъсване на връзката на клиента на Microsoft Outlook в Windows 10.
Научете се да пишете макроси на Outlook, за да автоматизирате изпращането на имейли.
Научете как да деактивирате напомнянията и известията от календарите на Outlook 2016 / 2019, както на Windows, така и на MAC.
Научете как да подобрите производителността на Outlook.
В тази публикация ще ви помогнем да промените паролата на акаунта си в Outlook.com и да синхронизирате вашия Windows на всичките си устройства.