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").