
파일 > 계정 설정 > RSS 피드를 통해 Outlook 2013에서 내 RSS 피드를 삭제했습니다.
그러나 RSS 피드는 여전히 Outlook 2013의 왼쪽에서 사용할 수 있습니다. 변경 사항(RSS 피드 삭제)을 적용하려면 Outlook 2013을 닫았다가 다시 열어야 한다고 생각했지만 아무 일도 일어나지 않습니다. 그럼 무슨 일이고 어떻게 해야 할까요?
답변1
Microsoft가 Shift/Ctrl-클릭을 통한 다중 선택과 같은 UI 규칙을 얼마나 일관되게 유지하지 않는지 마음에 드실 겁니다. 때로는 작동할 때도 있고 작동하지 않을 때도 있는데, 이 문제를 해결하는 가장 간단한 방법이 밝혀졌습니다. 문제는 Visual Basic 자동화를 통해 발생합니다.
서문: 현재 액세스할 수 있는 유일한 버전인 Outlook 2007에서 이 기능을 테스트했습니다. 즉, Outlook VBA API는 내 경험상 일반적으로 매우 안정적이며 두 가지 주요 버전에서만 다음 코드가 작동하지 않을 정도로 크게 변경될 것이라고는 기대하지 않습니다. 실패할 경우 가능한 한 자세하게 오작동을 설명하는 댓글을 남겨주시면 디버깅을 시도하겠습니다.
Alt-를 통해 VBA 편집기를 열어 시작하십시오 F11. (그래도 작동하지 않으면 개발자 탭에서 편집기를 열 수 있습니다. 먼저 편집기를 열어야 합니다.리본에 추가. 파일 탭을 클릭한 다음 옵션을 클릭하면 됩니다. 옵션 창의 왼쪽 창에서 "리본 사용자 정의"를 클릭하고 "리본 사용자 정의" 드롭다운에서 "기본 탭"을 선택한 다음 "개발자" 상자를 선택하세요. 개발자 탭이 나타나면 이를 선택한 다음 "Visual Basic"을 클릭하세요.)
Visual Basic 편집기에서 "Project1"을 확장한 다음 "Microsoft Office Outlook 개체"를 확장합니다. 그런 다음 "ThisOutlookSession"을 마우스 오른쪽 버튼으로 클릭하고 "삽입", "모듈"을 차례로 선택합니다. 그러면 "Project1 - Module1 (Code)"라는 제목의 빈 창이 나타납니다. 해당 창에 다음을 붙여넣습니다.여기:
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
하단 근처에서 다음 사항에 유의하세요 GetFolder("\\Personal Folders\RSS Feeds")
. 폴더 트리 이름이 "개인 폴더"라는 이름으로 되어 있지 않은 경우에는 이 줄을 편집하여 "개인 폴더"를 폴더 트리 앞에 있는 이름으로 바꿔야 합니다. 그렇지 않으면 코드가 자동으로 실패할 것입니다.
코드를 붙여넣고 필요한 편집을 완료한 후 F5를 누르거나 "실행" 메뉴를 클릭한 다음 "Sub/UserForm 실행"을 클릭하여 코드를 실행합니다. 실행할 매크로를 선택하라는 메시지가 표시됩니다. 이미 선택된 목록의 유일한 항목은 "DeleteAllRssFeedsFolders"여야 합니다. 필요한 경우 해당 항목을 선택한 다음 "실행"을 클릭하십시오. RSS 폴더가 즉시 사라지기 시작하는 것을 볼 수 있습니다. 특히 삭제해야 할 폴더가 수백 개인 경우 프로세스를 완료하는 데 1~2분 정도 걸릴 수 있지만 일단 완료되면 문제가 해결되어야 합니다.
이것이 자주 수행하고 싶은 작업이라고 생각되면 VBA 프로젝트를 저장하고 메뉴/리본 항목을 추가하여 호출할 수도 있습니다. 이 작업은 제가 특별한 관심이나 지식이 없고 그러므로 관심있는 독자를 위한 연습문제로 남겨둡니다. (다른 시간에 프로젝트를 저장하지 않으면 Outlook을 닫을 때 저장하라는 메시지가 표시됩니다. 유지하지 않으려면 "아니요"라고 말하면 됩니다.)