删除对会议邀请的回复
Delete response to meeting invite
我有以下代码可以从收件箱中永久删除邮件。
但是,当回复会议邀请时,表示此人已接受会议,请勿删除。
当我点击那个邮件时 运行 这个代码不会被删除?
Sub PermDelete(Item As Outlook.MailItem)
' First set a property to find it again later
Item.UserProperties.Add "Deleted", olText
Item.Save
Item.Delete
'Now go through the deleted folder, search for the property and delete item
Dim objDeletedFolder As Outlook.Folder
Dim objItem As Object
Dim objProperty As Variant
Set objDeletedFolder = Application.GetNamespace("MAPI"). _
GetDefaultFolder(olFolderDeletedItems)
For Each objItem In objDeletedFolder.items
Set objProperty = objItem.UserProperties.Find("Deleted")
If TypeName(objProperty) <> "Nothing" Then
objItem.Delete
End If
Next
End Sub
在代码中,您的函数仅接受 MailItem
class 的实例。但是 Outlook 文件夹可能包含不同类型的项目 - 约会、文档、便笺等。要在运行时区分它们,您可以使用以下结构:
Dim obj As Object
If TypeName(obj) = "MailItem" Then
' your code for mail items here
End If
因此,您需要按以下方式声明函数(如果您不需要对不同种类的项目执行单独的操作):
Sub PermDelete(Item As Object)
' First set a property to find it again later
Item.UserProperties.Add "Deleted", olText
Item.Save
Item.Delete
'Now go through the deleted folder, search for the property and delete item
Dim objDeletedFolder As Outlook.Folder
Dim objItem As Object
Dim objProperty As Variant
Set objDeletedFolder = Application.GetNamespace("MAPI"). _
GetDefaultFolder(olFolderDeletedItems)
For Each objItem In objDeletedFolder.items
Set objProperty = objItem.UserProperties.Find("Deleted")
If TypeName(objProperty) <> "Nothing" Then
objItem.Delete
End If
Next
End Sub
将 Item
设置为通用 Object
所选项目的示例
Option Explicit
Public Sub Example()
Dim obj As Object
Set obj = ActiveExplorer.Selection.Item(1)
obj.Delete
End Sub
对于具有像 (Item As Outlook.MailItem)
这样的参数的 运行 代码,在这种情况下,您需要传递信息 Item.
您不能通过按钮 运行 这样的代码。
您可以 运行 Sub delItemPermanently()
按按钮或 F8 单步执行。
Option Explicit
Sub delItemPermanently()
' Select a single item
' This line passes the item to PermDelete
PermDelete ActiveExplorer.Selection(1)
End Sub
Sub PermDelete(Item As Object)
' Notice Object not Mailitem
' This will accommodate mailitems as well
...
End Sub
我有以下代码可以从收件箱中永久删除邮件。
但是,当回复会议邀请时,表示此人已接受会议,请勿删除。
当我点击那个邮件时 运行 这个代码不会被删除?
Sub PermDelete(Item As Outlook.MailItem)
' First set a property to find it again later
Item.UserProperties.Add "Deleted", olText
Item.Save
Item.Delete
'Now go through the deleted folder, search for the property and delete item
Dim objDeletedFolder As Outlook.Folder
Dim objItem As Object
Dim objProperty As Variant
Set objDeletedFolder = Application.GetNamespace("MAPI"). _
GetDefaultFolder(olFolderDeletedItems)
For Each objItem In objDeletedFolder.items
Set objProperty = objItem.UserProperties.Find("Deleted")
If TypeName(objProperty) <> "Nothing" Then
objItem.Delete
End If
Next
End Sub
在代码中,您的函数仅接受 MailItem
class 的实例。但是 Outlook 文件夹可能包含不同类型的项目 - 约会、文档、便笺等。要在运行时区分它们,您可以使用以下结构:
Dim obj As Object
If TypeName(obj) = "MailItem" Then
' your code for mail items here
End If
因此,您需要按以下方式声明函数(如果您不需要对不同种类的项目执行单独的操作):
Sub PermDelete(Item As Object)
' First set a property to find it again later
Item.UserProperties.Add "Deleted", olText
Item.Save
Item.Delete
'Now go through the deleted folder, search for the property and delete item
Dim objDeletedFolder As Outlook.Folder
Dim objItem As Object
Dim objProperty As Variant
Set objDeletedFolder = Application.GetNamespace("MAPI"). _
GetDefaultFolder(olFolderDeletedItems)
For Each objItem In objDeletedFolder.items
Set objProperty = objItem.UserProperties.Find("Deleted")
If TypeName(objProperty) <> "Nothing" Then
objItem.Delete
End If
Next
End Sub
将 Item
设置为通用 Object
所选项目的示例
Option Explicit
Public Sub Example()
Dim obj As Object
Set obj = ActiveExplorer.Selection.Item(1)
obj.Delete
End Sub
对于具有像 (Item As Outlook.MailItem)
这样的参数的 运行 代码,在这种情况下,您需要传递信息 Item.
您不能通过按钮 运行 这样的代码。
您可以 运行 Sub delItemPermanently()
按按钮或 F8 单步执行。
Option Explicit
Sub delItemPermanently()
' Select a single item
' This line passes the item to PermDelete
PermDelete ActiveExplorer.Selection(1)
End Sub
Sub PermDelete(Item As Object)
' Notice Object not Mailitem
' This will accommodate mailitems as well
...
End Sub