Remover itens de RSS transferidos anteriormente após a exclusão de feeds no Outlook 2013

0

Eu excluí meus feeds RSS no Outlook 2013 via 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?

    
por mms911 19.08.2013 / 20:01

1 resposta

0

Você acabou de adorar a consistência da Microsoft com suas convenções de interface do usuário, como a seleção múltipla via Shift / Ctrl-click - às vezes elas funcionam, às vezes não. E acontece que a maneira mais simples de resolver este problema é por meio de automação Visual Basic.

Nota preliminar : testei isso no Outlook 2007, que é a única versão à qual tenho acesso atualmente; Dito isto, a API do VBA do Outlook é geralmente bastante estável na minha experiência, e eu não esperaria que ela mudasse tão drasticamente em apenas duas versões principais que impedisse o seguinte código de funcionar. Se falhar, por favor, comente descrevendo seu mau comportamento o mais detalhadamente possível, e tentarei depurá-lo.

Comece abrindo o editor de VBA através de Alt - F11 . (Se isso não funcionar, você pode abrir o editor na guia Desenvolvedor, que precisará primeiro de adicionar à faixa de opções . Isso é feito clicando na guia Arquivo, em Opções; na janela Opções, clique em" Personalizar Faixa de Opções "no painel à esquerda, selecione" Guias Principais "na seção" Personalizar Faixa de Opções ". a lista suspensa "Faixa de Opções" e marque a caixa "Desenvolvedor". Depois de ter a guia Desenvolvedor, selecione-a e clique em "Visual Basic".)

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

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

Na parte inferior, observe o seguinte: GetFolder("\Personal Folders\RSS Feeds") . No caso improvável de a sua árvore de pastas não estar com o nome "Pastas Particulares", você precisará editar esta linha para substituir "Pastas Particulares" por qualquer nome que nomeie a árvore de pastas. Se você não fizer isso, o código falhará, provavelmente em silêncio.

Uma vez que você tenha o código colado e feito qualquer edição necessária, execute o código pressionando F5, ou clicando no menu "Executar" e depois em "Executar Sub / UserForm". Você deve ser solicitado a escolher a macro a ser executada; o único item na lista, já selecionado, deve ser "DeleteAllRssFeedsFolders". Selecione esse item, se necessário, e clique em "Executar". Você deve ver as pastas RSS começarem a desaparecer imediatamente; Pode levar um ou dois minutos até que o processo termine, especialmente com algumas centenas de pastas a serem excluídas, mas uma vez feito isso, seu problema deve ser resolvido.

Se você suspeitar que isso é algo que você desejará 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 nenhum interesse particular ou conhecimento e que, portanto, é deixado como um exercício para o leitor interessado. (Se você não salvar o projeto a qualquer momento, você será solicitado a salvá-lo ao fechar o Outlook; se não quiser mantê-lo, diga "Não").

    
por 20.08.2013 / 00:41