Outlook 2013の[ファイル]> [アカウント設定]> [RSSフィード]でRSSフィードを削除しました
ただし、RSSフィードはOutlook 2013の左側で引き続き使用できます。変更[RSSフィードの削除]を有効にするにはOutlook 2013を閉じて再度開く必要があると思いましたが、何も起こりません。それで、何が起こっているのでしょうか?
Outlook 2013の[ファイル]> [アカウント設定]> [RSSフィード]でRSSフィードを削除しました
ただし、RSSフィードはOutlook 2013の左側で引き続き使用できます。変更[RSSフィードの削除]を有効にするにはOutlook 2013を閉じて再度開く必要があると思いましたが、何も起こりません。それで、何が起こっているのでしょうか?
回答:
Shift / Ctrlキーを押しながらクリックすることによる複数選択など、MicrosoftのUI規則が一貫していないことを愛する必要があります。問題は、Visual Basicの自動化によるものです。
序文:Outlook 2007でこれをテストしました。これは、現在アクセスできる唯一のバージョンです。とはいえ、Outlook VBA APIは私の経験では一般的に非常に安定しており、次のコードが機能しないように、2つのメジャーバージョンで大幅に変更されるとは思わないでしょう。失敗した場合は、その不正行為について可能な限り詳細にコメントしてください。デバッグを試みます。
Alt-でVBAエディターを開くことから始めF11ます。(それでも機能しない場合は、最初にリボンに追加する必要がある[開発]タブからエディターを開くことができます。これを行うには、[ファイル]タブ、[オプション]をクリックします。[オプション]ウィンドウで、[カスタマイズ左側のペインの[リボン]で、[リボンのカスタマイズ]ドロップダウンから[メインタブ]を選択し、[開発者]ボックスをオンにします。[開発者]タブを選択したら、[Visual Basic]をクリックします。
Visual Basicエディターで、「Project1」、「Microsoft Office Outlook Objects」の順に展開します。次に、「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")
。まれに、フォルダツリーの名前が「Personal Folders」ではない場合、この行を編集して「Personal Folders」をフォルダツリーの先頭にある名前に置き換える必要があります。そうしないと、おそらく静かにコードが失敗します。
コードを貼り付けて必要な編集を行ったら、F5キーを押すか、[実行]メニューをクリックしてから[サブ/ユーザーフォームの実行]をクリックしてコードを実行します。実行するマクロを選択するよう求められます。すでに選択されているリスト内の唯一のアイテムは、「DeleteAllRssFeedsFolders」です。必要に応じてその項目を選択し、「実行」をクリックします。RSSフォルダーがすぐに消え始めます。特に数百個のフォルダーを削除する場合、プロセスが完了するまでに1〜2分かかる場合がありますが、完了したら問題を解決する必要があります。
これが頻繁にやりたいことだと思う場合は、おそらくVBAプロジェクトを保存し、メニュー/リボン項目を追加してそれを呼び出すこともできます。したがって、関心のある読者のための演習として残されています。(プロジェクトをそれ以外の時間に保存しない場合は、Outlookを閉じるときに保存するように求められます。保存しない場合は、「いいえ」とだけ言ってください。)