Entfernen Sie zuvor heruntergeladene RSS-Elemente nach dem Löschen von Feeds in Outlook 2013

Entfernen Sie zuvor heruntergeladene RSS-Elemente nach dem Löschen von Feeds in Outlook 2013

I have deleted my RSS feeds in Outlook 2013 via File > Account Settings > RSS Feeds

However the RSS feeds are still available in the left hand side of Outlook 2013. I thought that I might have had to close and reopen Outlook 2013 for the changes [deletion of RSS feeds] to take effect, but nothing happens. So what's going on and what shall I do?

Antwort1

You've just got to love how consistent Microsoft isn't with its UI conventions, such as multiple select via Shift/Ctrl-click -- sometimes they work, sometimes they don't, and it turns out the simplest way of solving this problem is by means of Visual Basic automation.

Prefatory note: I've tested this in Outlook 2007, which is the only version to which I currently have access; that said, the Outlook VBA API is generally quite stable in my experience, and I would not expect it to change so drastically in only two major versions as to prevent the following code from working. If it fails, please comment describing its misbehavior in as much detail as possible, and I'll attempt to debug.

Start by opening the VBA editor via Alt-F11. (If that doesn't work, you can open the editor from the Developer tab, which you'll first need to add to the ribbon. Klicken Sie dazu auf die Registerkarte „Datei“ und dann auf „Optionen“. Klicken Sie im Fenster „Optionen“ im linken Bereich auf „Menüband anpassen“, wählen Sie „Hauptregisterkarten“ aus der Dropdown-Liste „Menüband anpassen“ und aktivieren Sie das Kontrollkästchen „Entwickler“. Wenn Sie die Registerkarte „Entwickler“ angezeigt bekommen, wählen Sie sie aus und klicken Sie dann auf „Visual Basic“.)

Erweitern Sie im Visual Basic-Editor "Projekt1", dann "Microsoft Office Outlook-Objekte", klicken Sie dann mit der rechten Maustaste auf "DieseOutlookSitzung" und wählen Sie "Einfügen", dann "Modul". Daraufhin sollte ein leeres Fenster mit dem Titel "Projekt1 - Modul1 (Code)" angezeigt werden. Fügen Sie in dieses Fenster Folgendes ein, das ursprünglichHier:

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

Unten ist Folgendes zu beachten: GetFolder("\\Personal Folders\RSS Feeds"). Im unwahrscheinlichen Fall, dass Ihr Ordnerbaum nicht mit dem Namen „Persönliche Ordner“ beginnt, müssen Sie diese Zeile bearbeiten und „Persönliche Ordner“ durch den Namen ersetzen, der Ihrem Ordnerbaum beginnt. Wenn Sie dies nicht tun, schlägt der Code wahrscheinlich unbemerkt fehl.

Sobald Sie den Code eingefügt und alle erforderlichen Änderungen vorgenommen haben, führen Sie den Code aus, indem Sie F5 drücken oder auf das Menü „Ausführen“ und dann auf „Sub/UserForm ausführen“ klicken. Sie sollten aufgefordert werden, das auszuführende Makro auszuwählen. Das einzige bereits ausgewählte Element in der Liste sollte „DeleteAllRssFeedsFolders“ sein. Wählen Sie dieses Element bei Bedarf aus und klicken Sie dann auf „Ausführen“. Sie sollten sehen, wie RSS-Ordner sofort verschwinden. Es kann ein oder zwei Minuten dauern, bis der Vorgang abgeschlossen ist, insbesondere wenn mehrere hundert Ordner gelöscht werden müssen. Sobald dies jedoch abgeschlossen ist, sollte Ihr Problem gelöst sein.

Wenn Sie vermuten, dass Sie dies häufig tun möchten, möchten Sie das VBA-Projekt wahrscheinlich speichern und möglicherweise auch ein Menü-/Ribbon-Element hinzufügen, um es aufzurufen. Dies ist eine Aufgabe, für die ich kein besonderes Interesse oder Wissen habe und die daher dem interessierten Leser als Übung überlassen bleibt. (Wenn Sie das Projekt zu keinem anderen Zeitpunkt speichern, werden Sie beim Schließen von Outlook dazu aufgefordert. Wenn Sie es nicht behalten möchten, sagen Sie einfach „Nein“.)

verwandte Informationen