如何在Outlook中导出和打印所有文件夹和子文件夹的列表?
一般来说,您可以按 按Ctrl + 6 键以查看Outlook导航窗格上所有文件夹的列表。 但是,您无法打印文件夹列表。 本文将介绍两个VBA脚本,以导出和打印Outlook中所有文件夹及其子文件夹的列表。
在新电子邮件中导出并打印所有Outlook文件夹及其子文件夹的列表
此方法将引入VBA,以将指定电子邮件帐户中的所有文件夹及其子文件夹的列表导出到Outlook中的新电子邮件中,然后您可以轻松地打印文件夹列表。
1。 按 其他 + F11 键以打开“ Microsoft Visual Basic应用程序”窗口。
2。 点击 插页 > 模块,然后将以下VBA代码粘贴到新的“模块”窗口中。
VBA:在Outlook中的新电子邮件中导出文件夹和子文件夹的列表
Public gFolders As String
Public Sub GetFolderNames()
Dim oSession As Outlook.NameSpace
Dim oFolder As Outlook.MAPIFolder
Dim oNewMail As Outlook.mailItem
Set oSession = Outlook.Application.GetNamespace("MAPI")
Set oFolder = oSession.PickFolder
If (oFolder Is Nothing) Then Exit Sub
ProcessFolder oFolder
Set oNewMail = Application.CreateItem(olMailItem)
oNewMail.Body = gFolders
oNewMail.Display
gFolders = ""
End Sub
Sub ProcessFolder(CurrentFolder As Outlook.MAPIFolder)
Dim i As Long
Dim oSubFolder As Outlook.MAPIFolder
Dim oFolder As Outlook.MAPIFolder
Dim sFolderPaths As String
For i = CurrentFolder.Folders.Count To 1 Step -1
Set oFolder = CurrentFolder.Folders(i)
sFolderPaths = oFolder.FolderPath
gFolders = gFolders & vbCrLf & sFolderPaths & " " & oFolder.Items.Count
Next
For Each oSubFolder In CurrentFolder.Folders
If oSubFolder.Name <> "Deleted Items" Then
ProcessFolder oSubFolder
End If
Next
End Sub
3。 按 F5 运行此VBA的关键。
4.在弹出的选择文件夹对话框中,选择要打印其文件夹列表的电子邮件帐户,然后单击 OK 按钮。 看截图:
5.现在,指定的电子邮件帐户的文件夹列表已复制到新的电子邮件,如下图所示。 请点击 文件 > 打印 打印文件夹的复制列表。
6.打印后,请关闭新的电子邮件而不保存。
在记事本中导出并打印所有Outlook文件夹及其子文件夹中的列表
此方法将引入VBA,以将指定电子邮件帐户中的所有文件夹及其子文件夹的列表从Outlook导出到记事本,然后您可以轻松地在记事本中打印Outlook文件夹的列表。
1。 按 其他 + F11 键以打开“ Microsoft Visual Basic应用程序”窗口。
2。 点击 插页 > 模块,然后将以下VBA代码粘贴到新的“模块”窗口中。
VBA:将所有Outlook文件夹和子文件夹的列表从Outlook导出到记事本
Dim gFileName, gCreateTree, gBase
Public Sub ExportFolderTree()
Dim objOutlook
Dim F, Folders
Dim Result
Set objOutlook = CreateObject("Outlook.Application")
Set F = objOutlook.Session.PickFolder
If Not F Is Nothing Then
Set Folders = F.Folders
Result = MsgBox("Do you want to create tree?", vbYesNo + vbDefaultButton2 + vbApplicationModal, "Output Folder Tree")
If Result = 6 Then
gCreateTree = True
Else
gCreateTree = False
End If
gFileName = GetDesktopFolder() & "\Outlook-Folders.txt"
gBase = Len(F.FolderPath) - Len(Replace(F.FolderPath, "\", "")) + 1
WriteToATextFile (CreateFolderTree(F.FolderPath, F.Name))
LoopFolders Folders
Set F = Nothing
Set Folders = Nothing
Set objOutlook = Nothing
End If
End Sub
Private Function GetDesktopFolder()
Dim objShell
Set objShell = CreateObject("WScript.Shell")
GetDesktopFolder = objShell.SpecialFolders("Desktop")
Set objShell = Nothing
End Function
Private Sub LoopFolders(Folders)
Dim F
For Each F In Folders
WriteToATextFile (CreateFolderTree(F.FolderPath, F.Name))
LoopFolders F.Folders
Next
End Sub
Private Sub WriteToATextFile(OLKfoldername)
Dim objFSO, objTextFile
Set objFSO = CreateObject("Scripting.FileSystemObject")
Set objTextFile = objFSO.OpenTextFile(gFileName, 8, True)
objTextFile.WriteLine (OLKfoldername)
objTextFile.Close
Set objFSO = Nothing
Set objTextFile = Nothing
End Sub
Private Function CreateFolderTree(OLKfolderpath, OLKfoldername)
If gCreateTree = False Then
CreateFolderTree = Mid(OLKfolderpath, 3)
Else
Dim i, x, OLKprefix
i = Len(OLKfolderpath) - Len(Replace(OLKfolderpath, "\", ""))
For x = gBase To i
OLKprefix = OLKprefix & "-"
Next
CreateFolderTree = OLKprefix & OLKfoldername
End If
End Function
3。 按 F5 运行此VBA的关键。 在打开的“选择文件夹”对话框中,下一步,请选择要导出和打印其文件夹列表的电子邮件帐户,然后单击 OK 按钮。 看截图:
4.然后出现“输出文件夹树”对话框。 请点击 有 按钮或 没有 按钮,根据需要。
现在一个名为的文本文件 展望文件夹 创建并保存在您的桌面上,如下图所示。
5.双击打开新的文本文件,然后单击 文件 > 打印 打印Outlook文件夹的导出列表。
一键式显示Outlook导航窗格上所有文件夹中的项目总数
通常,Outlook在导航窗格上的每个文件夹中显示未读项目的数量。 但是,Kutools for Outlook的 所有文件夹显示项目总数 功能可以帮助您一键显示所有文件夹中的项目总数。

相关文章
Kutools for Outlook-为Outlook带来100个高级功能,并使工作更加轻松!
- 自动CC / BCC 根据规则发送电子邮件; 自动转发 自定义多封电子邮件; 自动回复 没有交换服务器,还有更多自动功能...
- BCC警告 -当您尝试全部答复时显示消息 如果您的邮件地址在“密件抄送”列表中; 缺少附件时提醒,还有更多提醒功能...
- 在邮件对话中回复(全部)带有所有附件; 回复许多电子邮件 很快; 自动添加问候语 回复时将日期添加到主题中...
- 附件工具:管理所有邮件中的所有附件, 自动分离, 全部压缩,全部重命名,全部保存...快速报告, 计算选定的邮件...
- 强大的垃圾邮件 习俗 删除重复的邮件和联系人... 使您能够在Outlook中做得更聪明,更快和更好。

