Remova itens RSS baixados anteriormente após excluir feeds no Outlook 2013

Remova itens RSS baixados anteriormente após excluir feeds no Outlook 2013

Excluí meus feeds RSS no Outlook 2013 em Arquivo > Configurações da conta > Feeds RSS

No entanto, os feeds RSS ainda estão disponíveis no lado esquerdo do Outlook 2013. Pensei que talvez fosse necessário fechar e reabrir o Outlook 2013 para que as alterações [exclusão de feeds RSS] entrassem em vigor, mas nada acontece. Então, o que está acontecendo e o que devo fazer?

Responder1

Você simplesmente adora o quão consistente a Microsoft não é com suas convenções de UI, como seleção múltipla via Shift/Ctrl-clique - às vezes elas funcionam, às vezes não, e essa é a maneira mais simples de resolver isso problema é por meio da automação do Visual Basic.

Nota preliminar: testei isso no Outlook 2007, que é a única versão à qual tenho acesso atualmente; Dito isto, a API VBA do Outlook é geralmente bastante estável em minha experiência, e eu não esperaria que ela mudasse tão drasticamente em apenas duas versões principais a ponto de impedir o funcionamento do código a seguir. Se falhar, comente descrevendo seu mau comportamento com o máximo de detalhes possível e tentarei depurar.

Comece abrindo o editor VBA via Alt- F11. (Se isso não funcionar, você pode abrir o editor na guia Desenvolvedor, que primeiro você precisaadicionar à faixa de opções. Você faz isso clicando na guia Arquivo e depois em Opções; na janela Opções, clique em "Personalizar faixa de opções" no painel esquerdo, selecione "Guias principais" no menu suspenso "Personalizar a faixa de opções" e marque a caixa "Desenvolvedor". Assim que tiver a guia Desenvolvedor, selecione-a e clique em "Visual Basic".)

No editor do Visual Basic, expanda "Projeto1" e depois "Objetos do Microsoft Office Outlook"; em seguida, clique com o botão direito em "ThisOutlookSession" e escolha "Inserir" e depois "Módulo". Isso deve fornecer uma janela em branco intitulada "Projeto1 - Módulo1 (Código)". Nessa janela, cole o seguinte, que originouaqui:

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

Perto da parte inferior, observe o seguinte: GetFolder("\\Personal Folders\RSS Feeds"). No caso improvável de sua árvore de pastas não ter o nome "Pastas Pessoais", você precisará editar esta linha para substituir "Pastas Pessoais" por qualquer nome que encabeça sua árvore de pastas. Caso contrário, o código falhará, provavelmente silenciosamente.

Depois de colar o código e fazer as edições necessárias, execute o código pressionando F5 ou clicando no menu "Executar" e depois em "Executar Sub/UserForm". Você deverá ser solicitado a escolher a macro a ser executada; o único item da lista, já selecionado, deverá ser "DeleteAllRssFeedsFolders". Selecione esse item, se necessário, e clique em “Executar”. Você deverá ver as pastas RSS começarem a desaparecer imediatamente; pode levar um ou dois minutos para o processo terminar, especialmente com algumas centenas de pastas para excluir, mas assim que terminar, seu problema estará resolvido.

Se você suspeita que isso é algo que deseja fazer com frequência, provavelmente desejará salvar o projeto VBA e possivelmente também adicionar um item de menu/faixa de opções para invocá-lo, uma tarefa na qual não tenho interesse ou conhecimento específico e que portanto fica como exercício para o leitor interessado. (Se você não salvar o projeto em nenhum outro momento, será solicitado que você o salve ao fechar o Outlook; se não quiser mantê-lo, basta dizer "Não".)

informação relacionada