Elimine los elementos RSS descargados previamente después de eliminar fuentes en Outlook 2013

Elimine los elementos RSS descargados previamente después de eliminar fuentes en Outlook 2013

Eliminé mis fuentes RSS en Outlook 2013 a través de Archivo> Configuración de cuenta> Fuentes RSS

Sin embargo, las fuentes RSS todavía están disponibles en el lado izquierdo de Outlook 2013. Pensé que tendría que cerrar y volver a abrir Outlook 2013 para que los cambios [eliminación de fuentes RSS] surtieran efecto, pero no sucede nada. Entonces, ¿qué está pasando y qué debo hacer?

Respuesta1

Te debe encantar lo consistente que Microsoft no es con sus convenciones de interfaz de usuario, como la selección múltiple mediante Shift/Ctrl-clic: a veces funcionan, a veces no, y resulta ser la forma más sencilla de resolver esto. El problema es mediante la automatización de Visual Basic.

nota preliminar: Probé esto en Outlook 2007, que es la única versión a la que tengo acceso actualmente; Dicho esto, según mi experiencia, la API de Outlook VBA es generalmente bastante estable y no esperaría que cambiara tan drásticamente en solo dos versiones principales como para impedir que funcione el siguiente código. Si falla, comente describiendo su mal comportamiento con el mayor detalle posible e intentaré depurarlo.

Comience abriendo el editor VBA mediante Alt- F11. (Si eso no funciona, puede abrir el editor desde la pestaña Desarrollador, que primero deberáagregar a la cinta. Esto se hace haciendo clic en la pestaña Archivo, luego en Opciones; En la ventana Opciones, haga clic en "Personalizar cinta" en el panel izquierdo, seleccione "Pestañas principales" en el menú desplegable "Personalizar cinta" y marque la casilla "Desarrollador". Una vez que tenga la pestaña Desarrollador, selecciónela y luego haga clic en "Visual Basic".)

En el editor de Visual Basic, expanda "Proyecto1" y luego "Objetos de Microsoft Office Outlook"; luego, haga clic derecho en "ThisOutlookSession" y elija "Insertar", luego "Módulo". Esto debería mostrarle una ventana en blanco titulada "Proyecto1 - Módulo1 (Código)". En esa ventana, pegue lo siguiente, que originóaquí:

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

Cerca de la parte inferior, tenga en cuenta lo siguiente: GetFolder("\\Personal Folders\RSS Feeds"). En el improbable caso de que su árbol de carpetas no tenga el nombre "Carpetas personales", deberá editar esta línea para reemplazar "Carpetas personales" con el nombre que encabece su árbol de carpetas. Si no lo hace, el código fallará, probablemente de forma silenciosa.

Una vez que haya pegado el código y realizado las modificaciones necesarias, ejecute el código presionando F5 o haciendo clic en el menú "Ejecutar" y luego en "Ejecutar Sub/UserForm". Se le pedirá que elija la macro que desea ejecutar; el único elemento de la lista, ya seleccionado, debe ser "DeleteAllRssFeedsFolders". Seleccione ese elemento si es necesario y luego haga clic en "Ejecutar". Deberías ver que las carpetas RSS comienzan a desaparecer inmediatamente; El proceso puede tardar uno o dos minutos en finalizar, especialmente con unos cientos de carpetas para eliminar, pero una vez hecho, el problema debería estar resuelto.

Si sospecha que esto es algo que querrá hacer con frecuencia, probablemente desee guardar el proyecto VBA y posiblemente también agregar un elemento de menú/cinta para invocarlo, una tarea en la que no tengo ningún interés o conocimiento particular y que Se deja por tanto como ejercicio para el lector interesado. (Si no guarda el proyecto en ningún otro momento, se le pedirá que lo guarde al cerrar Outlook; si no desea conservarlo, simplemente diga "No".)

información relacionada