連絡先のすべてのサブフォルダーをアドレス帳に表示するスクリプト


コメントにて以下のご要望をいただきました。


いつも参考にさせていただいております。
連絡先のサブフォルダに「電子メールのアドレス帳にこのフォルダーを表示する」のチェックボックスにチェックを利用者が入れなくても良いように、スクリプトでチェックを入れさせたいと考えています。
レジストリ操作かとは思いますが、良きお知恵がありましたら、ご教示いただけますと嬉しく思います。


[電子メールのアドレス帳にこのフォルダーを表示する] の設定をオンにするには、Outlook の Folder オブジェクトの ShowAsOutlookAB プロパティを True にします。
ただ、Exchange サーバー環境などでは連絡先のサブ フォルダーに Outlook や Exchange が使用する隠しフォルダーが生成される場合があり、これらをアドレス帳に表示するとユーザーが混乱することになります。
そのため、隠しフォルダーである場合に True となる PidTagAttributeHidden プロパティで隠しフォルダーかどうかを判断し、隠しフォルダーでない場合だけ ShowAsOutlookAB を True とします。
スクリプトは以下の通りです。

' ここをトリプルクリックでスクリプト全体を選択できます。
Const olFolderContacts = 10
Dim olkApp 'As Outlook.Application
Dim fldContacts 'As Folder
'
Set olkApp = CreateObject("Outlook.Application")
Set fldContacts = olkApp.Session.GetDefaultFolder(olFolderContacts)
MakeContactsVisible(fldContacts)
'
Private Sub MakeContactsVisible(fldContacts)
     Const PidTagAttributeHidden = "http://schemas.microsoft.com/mapi/proptag/0x10F4000B"
     Dim fldSub 'As Folder
     '
     WScript.Echo fldContacts.FolderPath
     If fldContacts.PropertyAccessor.GetProperty(PidTagAttributeHidden) = False Then
         fldContacts.ShowAsOutlookAB = True
     End If
     '
     For Each fldSub In fldContacts.Folders
         MakeContactsVisible fldSub
     Next
End Sub

連絡先のすべてのサブフォルダーをアドレス帳に表示するスクリプト」への2件のフィードバック

  1. ありがたく拝見しております
    こちらのソースをコピーしてメモ帳に貼り付け.vbsの拡張子で保存して実行すればよいのでしょうか?

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中