我正在尝试将我的Outlook2003转换为最接近gmail的东西。
我开始使用类别,这与gmail中的标签非常相似。我可以使用规则自动分配类别,我可以手动添加类别。 我还创建了“搜索文件夹”,显示所有具有给定类别的邮件,如果它们不在“已删除邮件”或“已发送邮件”文件夹中。这部分几乎就像gmail中的Label视图一样。
基本上缺少两件事,应该用宏(VBA准确)完成,我完全没经验。因此我的问题是:
- 有人给我看一个宏来删除“收件箱”类别吗? 这与gmail中的Archive按钮完全相同。实际上我想将此宏指定给工具栏按钮并将其命名为Archive。 我有一个规则,将收件箱类别添加到所有传入邮件。正如我所说,我有一个搜索文件夹显示所有分类为收件箱的邮件,我还有一个All Mail搜索文件夹,它显示所有邮件,无论他们是否有收件箱类别。完全像gmail,只是缺少简单的归档。
- 有人给我看一个会删除所选邮件/邮件的宏,还会在删除前删除收件箱类别吗?我会用这个宏替换默认的删除按钮。 (稍微不那么重要,因为在我的搜索文件夹中,我可以过滤实际放置在“已删除邮件”文件夹中的邮件,但如果不将邮件归类为垃圾箱中的收件箱,则会更加优雅。
非常感谢,
szekelya
答案 0 :(得分:4)
我使用了来自http://www.outlookcode.com/codedetail.aspx?id=1211
的Sue删除代码但这应该对你有用
添加了保存!卫生署!
Sub UnAssignInboxCat()
Dim SelectedItems As Selection
Dim Item As MailItem
Set SelectedItems = Application.ActiveExplorer.Selection
For Each Item In SelectedItems
RemoveCat Item, "Inbox"
Item.Save
Next
Set SelectedItems = Nothing
Set Item = Nothing
End Sub
Sub DeleteAndUnAssignInboxCat()
Dim SelectedItems As Selection
Dim Item As MailItem
Set SelectedItems = Application.ActiveExplorer.Selection
For i = SelectedItems.Count To 1 Step -1
Set Item = SelectedItems.Item(i)
RemoveCat Item, "Inbox"
Item.Save
Item.Delete
Next
Set SelectedItems = Nothing
Set Item = Nothing
End Sub
Sub RemoveCat(itm, catName)
arr = Split(itm.Categories, ",")
If UBound(arr) >= 0 Then
' item has categories
For i = 0 To UBound(arr)
If Trim(arr(i)) = catName Then
' category already exists on item
' remove it
arr(i) = ""
'rebuild category list from array
itm.Categories = Join(arr, ",")
Exit Sub
End If
Next
End If
End Sub