是否可以在我在收件箱中手动选择的电子邮件上运行宏。例如,右键单击电子邮件并选择"发送至>>宏>> (显示接受Outlook.MailItem作为参数的子例程列表)?
答案 0 :(得分:3)
我认为您必须在邮件功能区中添加一个Button。这个按钮可以调用一个例程。
在此例程中,您使用活动选择:
Sub example()
Dim myOlApp As Outlook.Application
Dim myNameSpace As Outlook.NameSpace
Set myOlApp = CreateObject("Outlook.Application")
Set myNameSpace = myOlApp.GetNamespace("MAPI")
Dim olExplorer As Explorer
Dim olfolder As MAPIFolder
Dim olSelection As Selection
Dim olitem As mailitem
Set olExplorer = Application.ActiveExplorer
Set olfolder = Application.ActiveExplorer.CurrentFolder
If olfolder.DefaultItemType = olMailItem Then
Set olSelection = olExplorer.Selection
end if
For Each olitem In olSelection
'do something
Next olitem
结束子
我希望你能做到这一点...... 最大
答案 1 :(得分:2)
所以,我能够简化马克斯的答案,但他确实指出了我正确的方向。以下基本上是我的目标。在收件箱中选择电子邮件后,我应该可以运行此宏并继续处理它。
Sub example()
Dim x, mailItem As Outlook.mailItem
For Each x In Application.ActiveExplorer.Selection
If TypeName(x) = "MailItem" Then
Set mailItem = x
call fooMail(mailItem)
End If
Next
End Sub
Sub fooMail(ByRef mItem as Outlook.MailItem)
Debug.print mItem.Subject
End Sub