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
すばらしいです。 しかし、「ビューのカスタマイズ」→「自動書式」で設定した、"フラグ=終了" のメールを "灰色文字+取消線" にする設定(他複数)が、マクロで作成された"新規ビュー"に反映されませんでした。 当方の環境(フォルダ数が多い)による個別の不具合でしょうか? 御教授、お願い致します。
To 名前なしさんこのマクロでは View オブジェクトの XML プロパティによりビューの設定をコピーしているのですが、この XML プロパティには自動書式の情報が含まれません。自動書式の設定は Outlook 2007 から AutoFormatRule オブジェクトにより設定できるようになりました。お使いの Outlook のバージョンは 2007 でしょうか? であれば、自動書式もコピーするマクロを別途作成します。
To Millefeuilleさん当方はOUTLOOK2007を使用しております。自分ではマクロを作成できそうもありませんので、恐縮ですが、ご対応を頂ければ幸いです。
To 名前なしさん動作を確認してみたところ、AutoFormatRule オブジェクトの Filter プロパティが想定したように動作せず、コピーした自動書式がすべてのメッセージに適用されてしまうという現象が発生しました。そのため、自動書式をコピーするということは不可能なようです。申し訳ありません。
To Millefeuilleさん対応を有り難う御座いました。不可能という事で残念です。「すべてのメッセージに適用されてしまう…」の意味は、全てのメッセージフォルダに雛形の自動書式が適用される…の意味でしょうか?。であれば当方の使い方としては問題なさそうですが。。。ひとまず、ご対応を有り難う御座いました。
To 名前なしさんすべてのメッセージに適用されてしまうというのは、そのフォルダにあるすべてのメッセージが同じ書式になるという意味です。たとえば、自分宛てのメールを斜体にするという自動書式を設定していたとしても、サブフォルダにコピーした際に条件を表す Filter が正しくコピーされないため、自分宛てだけでなくすべてのメールが斜体となってしまうのです。
To Millefeuilleさん了解しました。残念ですが仕方がありませんね。色々とご対応を頂き有り難う御座いました。