Vba 在Outlook 2013中自动执行操作
我在outlook中有一个电子邮件文件夹,我希望能够对文件夹中的每封电子邮件应用相同的操作,但是我注意到outlook的开发人员选项中没有宏记录器 我目前正在进行的过程包括打开每封电子邮件(因为它包含HTML内容,我希望以文档质量的图像打印),从“操作”选项卡中选择“在浏览器中查看”,然后从Internet Explorer打印Vba 在Outlook 2013中自动执行操作,vba,outlook,html-email,office-automation,Vba,Outlook,Html Email,Office Automation,我在outlook中有一个电子邮件文件夹,我希望能够对文件夹中的每封电子邮件应用相同的操作,但是我注意到outlook的开发人员选项中没有宏记录器 我目前正在进行的过程包括打开每封电子邮件(因为它包含HTML内容,我希望以文档质量的图像打印),从“操作”选项卡中选择“在浏览器中查看”,然后从Internet Explorer打印 是否有方法在Outlook中对文件夹中的每封电子邮件重复此操作?如果不记录我的操作以了解如何引用Outlook模块中的内容,我就不知道如何着手解决这个问题。您需要了解一
是否有方法在Outlook中对文件夹中的每封电子邮件重复此操作?如果不记录我的操作以了解如何引用Outlook模块中的内容,我就不知道如何着手解决这个问题。您需要了解一点Outlook的对象模型。这里有一个小代码让你开始。此宏将循环遍历文件夹中的所有项目,检查收件人的电子邮件地址并设置标志
Sub SetFlagIcon()
Dim mpfInbox As Outlook.Folder
Dim obj As Outlook.MailItem
Dim i As Integer
Set mpfInbox = Application.GetNamespace("MAPI").Folders("Jeanno").Folders("Sent Mail")
' Loop all items in the Inbox\Test Folder
For i = 1 To mpfInbox.Items.Count
If mpfInbox.Items(i).Class = olMail Then
Set obj = mpfInbox.Items.Item(i)
For Each Recipient In obj.Recipients
If Recipient.Address = "someone@email" Then
'Set the yellow flag icon
obj.FlagIcon = olYellowFlagIcon
obj.Save
End If
Next Recipient
End If
Next
End Sub
Outlook没有宏记录器,但您可以使用Word中记录的宏,因为Outlook使用Microsoft Word作为电子邮件编辑器,允许开发人员使用强大的Word库编辑电子邮件和其他项目的内容 您可以在Word中录制宏并在Outlook VBA项目中使用相同的代码,只需确保设置对“Microsoft Word对象库”的引用,以便Outlook可以识别Word使用的对象 范例
Option Explicit
Public Sub UseWord()
Dim Ins As Outlook.Inspector
Dim wDoc As Word.Document
Dim Word As Word.Application
Dim Selection As Word.Selection
Set Ins = Application.ActiveInspector
Set wDoc = Ins.WordEditor
Set Word = wDoc.Application
Set Selection = Word.Selection
'insert here your macro from word
End Sub
以下是有用的链接Outlook没有记录器。您必须自己键入VBA(或从internet上复制)。