【发布时间】:2015-08-07 22:50:40
【问题描述】:
最近我正在尝试创建一个选择特定文件夹的函数。
我在一位用户身上进行了测试,它可以工作。然而,问题是我也想在其他用户处使用此功能,但不必根据他们的文件夹结构重写该功能。
该功能适用于几个文件夹名称,它们都有(相同的名称)。 它包含 1 个主文件夹:#MemoScan 和 4 个子文件夹。
根据这些文件夹名称,我想计算其中有多少邮件。
我为此创建了以下函数:
Function HowManyEmails() As Integer
Dim objOutlook As Object, objnSpace As Object, MyCurrentFolder As MAPIFolder
Dim EmailCount As Integer
Set objOutlook = CreateObject("Outlook.Application")
Set objnSpace = objOutlook.GetNamespace("MAPI")
Set MyCurrentFolder = objnSpace.folders("William").folders("#MemoScan")
sFolder = MyCurrentFolder
For Each Folder In MyCurrentFolder.folders
sFolder = Folder
sSubmap = Right(sFolder, Len(sFolder) - 1)
For Each Item In Folder.Items
If TypeName(Item) = "MailItem" Then
EmailCount = EmailCount + 1
End If
Next Item
Next Folder
HowManyEmails = EmailCount
End Function
如您所见,需要检查的文件夹是硬编码的(需要这样,因为它在关闭 Outlook 事件时运行并且没有选择任何内容)。
现在的路径是:objnSpace.folders("William").folders("#MemoScan")
然而,主要帐户/文件夹William 不会在其他用户那里。我的问题是,我该如何调整它,让它只查找每个用户都相同的 #MemoScan 文件夹?这甚至可能吗?
如果我将主要的 William 命名空间留在外面,那么它将无法找到 #MemoScan 文件夹。
这个特定用户的文件夹结构如下:
【问题讨论】:
-
谢谢!这样就行了!