現在のビューの設定をサブフォルダにコピーするマクロ


Outlook ではビューの設定はフォルダごとに保存され、ひとつのフォルダでカスタマイズしたビューの内容はほかのフォルダには反映されません。既定のビューである「メッセージ」ビューをカスタマイズすることで新規に作成したフォルダやビューのカスタマイズを行っていないフォルダのビューを変更することは可能ですが、すでにビューを変更してしまったフォルダをまとめて変更したり、特定の複数のフォルダのみ設定を一括変更する機能は用意されていません。
そこで、あるフォルダの現在のビューの設定をそのフォルダのすべてのサブフォルダの初期ビューとして設定するマクロを作ってみました。
ビューをカスタマイズした後、そのフォルダを選択して CopyViewToSubFolders を実行すると、そのフォルダのすべてのサブフォルダ (サブフォルダにさらにサブフォルダが存在する場合はそれも含めて) のビューに「初期ビュー」という名前で新たなビューが作成され、カスタマイズしたビューの内容が設定されます。また、そのビューがサブフォルダを表示した際に使用されます。なお、すでに「初期ビュー」という名前のビューが存在する場合は削除されます。

' ここをトリプルクリックでマクロ全体を選択できます。
Public Sub CopyViewToSubFolders()
    Dim fldCurrent 'As Folder
    Set fldCurrent = ActiveExplorer.CurrentFolder
    CopyViewToSubRecur fldCurrent
End Sub
'
Private Sub CopyViewToSubRecur(ByVal fldParent As Object)
    Const VIEW_NAME = "初期ビュー" ' - ビューの名前を変更したい場合は、これを変更
    Dim fldSub 'As Folder
    Dim viewParent 'As View
    Dim viewSub 'As View
    Dim strViewXml As String
    Set viewParent = fldParent.CurrentView
    For Each fldSub In fldParent.Folders
        For Each viewSub In fldSub.Views
            If viewSub.Name = VIEW_NAME Then
                viewSub.Delete
                Exit For
            End If
        Next
        Set viewSub = fldSub.Views.Add(VIEW_NAME, viewParent.ViewType, olViewSaveOptionThisFolderEveryone)
        viewSub.XML = viewParent.XML
        viewSub.Save
        viewSub.Apply
        CopyViewToSubRecur fldSub
    Next
End Sub

マクロの登録方法やメニューへの追加について

現在のビューの設定をサブフォルダにコピーするマクロ」への7件のフィードバック

  1. すばらしいです。 しかし、「ビューのカスタマイズ」→「自動書式」で設定した、"フラグ=終了" のメールを "灰色文字+取消線" にする設定(他複数)が、マクロで作成された"新規ビュー"に反映されませんでした。 当方の環境(フォルダ数が多い)による個別の不具合でしょうか? 御教授、お願い致します。

  2. To 名前なしさんこのマクロでは View オブジェクトの XML プロパティによりビューの設定をコピーしているのですが、この XML プロパティには自動書式の情報が含まれません。自動書式の設定は Outlook 2007 から AutoFormatRule オブジェクトにより設定できるようになりました。お使いの Outlook のバージョンは 2007 でしょうか? であれば、自動書式もコピーするマクロを別途作成します。

  3. To Millefeuilleさん当方はOUTLOOK2007を使用しております。自分ではマクロを作成できそうもありませんので、恐縮ですが、ご対応を頂ければ幸いです。

  4. To 名前なしさん動作を確認してみたところ、AutoFormatRule オブジェクトの Filter プロパティが想定したように動作せず、コピーした自動書式がすべてのメッセージに適用されてしまうという現象が発生しました。そのため、自動書式をコピーするということは不可能なようです。申し訳ありません。

  5. To Millefeuilleさん対応を有り難う御座いました。不可能という事で残念です。「すべてのメッセージに適用されてしまう…」の意味は、全てのメッセージフォルダに雛形の自動書式が適用される…の意味でしょうか?。であれば当方の使い方としては問題なさそうですが。。。ひとまず、ご対応を有り難う御座いました。

  6. To 名前なしさんすべてのメッセージに適用されてしまうというのは、そのフォルダにあるすべてのメッセージが同じ書式になるという意味です。たとえば、自分宛てのメールを斜体にするという自動書式を設定していたとしても、サブフォルダにコピーした際に条件を表す Filter が正しくコピーされないため、自分宛てだけでなくすべてのメールが斜体となってしまうのです。

  7. To Millefeuilleさん了解しました。残念ですが仕方がありませんね。色々とご対応を頂き有り難う御座いました。

コメントを残す