我已通过“文件”>“帐户设置”>“RSS 源”删除了 Outlook 2013 中的 RSS 源
但是,RSS 源在 Outlook 2013 的左侧仍然可用。我想我可能必须关闭并重新打开 Outlook 2013 才能使更改 [删除 RSS 源] 生效,但什么也没发生。那么发生了什么事,我该怎么办?
答案1
您一定会喜欢 Microsoft 与其 UI 约定不一致的情况,例如通过 Shift/Ctrl 单击进行多项选择 —— 有时它们有效,有时无效,而事实证明解决此问题的最简单方法是通过 Visual Basic 自动化。
序言:我已经在 Outlook 2007 中测试过此操作,这是我目前唯一可以访问的版本;话虽如此,根据我的经验,Outlook VBA API 通常非常稳定,并且我不希望它在两个主要版本中发生如此大的变化,以至于阻止以下代码运行。如果失败,请尽可能详细地评论其错误行为,我会尝试调试。
首先通过Alt-打开 VBA 编辑器F11。(如果这不起作用,您可以从“开发人员”选项卡打开编辑器,首先需要添加到功能区。您可以通过单击“文件”选项卡,然后单击“选项”来执行此操作;在“选项”窗口中,单击左侧窗格中的“自定义功能区”,从“自定义功能区”下拉列表中选择“主选项卡”,然后选中“开发人员”框。获得“开发人员”选项卡后,选择它,然后单击“Visual Basic”。)
在 Visual Basic 编辑器中,展开“Project1”,然后展开“Microsoft Office Outlook Objects”;然后右键单击“ThisOutlookSession”,选择“插入”,然后选择“模块”。这将为您提供一个空白窗口,标题为“Project1 - Module1 (Code)”。在该窗口中,粘贴以下内容,该内容源自这里:
Private Function GetFolder(ByVal FolderPath As String) As Outlook.folder
Dim TestFolder As Outlook.folder
Dim FoldersArray As Variant
Dim i As Integer
On Error GoTo GetFolder_Error
If Left(FolderPath, 2) = "\\" Then
FolderPath = Right(FolderPath, Len(FolderPath) - 2)
End If
'Convert folderpath to array
FoldersArray = Split(FolderPath, "\")
Set TestFolder = Application.Session.folders.Item(FoldersArray(0))
If Not TestFolder Is Nothing Then
For i = 1 To UBound(FoldersArray, 1)
Dim SubFolders As Outlook.folders
Set SubFolders = TestFolder.folders
Set TestFolder = SubFolders.Item(FoldersArray(i))
If TestFolder Is Nothing Then
Set GetFolder = Nothing
End If
Next
End If
'Return the TestFolder
Set GetFolder = TestFolder
Exit Function
GetFolder_Error:
Set GetFolder = Nothing
Exit Function
End Function
Private Sub DeleteFolders(ByVal oFolder As Outlook.folder)
Dim folders As Outlook.folders
Dim folder As Outlook.folder
Dim foldercount As Integer
On Error Resume Next
Set folders = oFolder.folders
foldercount = folders.Count
If foldercount Then
For Each folder In folders
folder.Delete
DeleteFolders folder
Next
End If
End Sub
Sub DeleteAllRssFeedsFolders()
Dim folder As Outlook.folder
' If your PST isn't loaded under the name "Personal Folders", then edit the
' folder path below and replace "Personal Folders" with whatever name heads
' the folder tree whose RSS feed contents you wish to remove.
Set folder = GetFolder("\\Personal Folders\RSS Feeds")
If Not (folder Is Nothing) Then
DeleteFolders folder
End If
End Sub
在底部附近,请注意以下内容:GetFolder("\\Personal Folders\RSS Feeds")
。万一您的文件夹树没有以名称“个人文件夹”为标题,则需要编辑此行以将“个人文件夹”替换为您的文件夹树标题。如果不这样做,代码将失败,可能没有任何提示。
粘贴代码并完成所有必要的编辑后,按 F5 或单击“运行”菜单,然后单击“运行 Sub/UserForm”来运行代码。系统应提示您选择要运行的宏;列表中唯一已选择的项目应该是“DeleteAllRssFeedsFolders”。如有必要,请选择该项目,然后单击“运行”。您应该看到 RSS 文件夹立即开始消失;这个过程可能需要一两分钟才能完成,尤其是要删除几百个文件夹时,但一旦完成,您的问题就解决了。
如果您怀疑这是您想要经常做的事情,那么您可能需要保存 VBA 项目,并且可能还需要添加菜单/功能区项来调用它,而我对这项任务没有特别的兴趣或知识,因此留给感兴趣的读者作为练习。(如果您在其他任何时候都不保存该项目,则在关闭 Outlook 时系统会提示您保存它;如果您不想保留它,只需说“否”。)