Outlook のマクロからパブリック フォルダにアクセスする方法


コメントにて Outlook のマクロから Exchange Server のパブリック フォルダにアクセスする方法を知りたいというご要望をいただきました。

実際のところ、パブリック フォルダにアクセスするために特別な方法があるわけではありません。そのため、マイクロソフトのサイトなどにパブリック フォルダのアクセスについてのサンプルなどがないと考えられます。
パブリック フォルダに限らず、Outlook のフォルダ ツリーにあるすべてのフォルダは、Session オブジェクトの Folders プロパティからたどって参照することができます。

例えば、パブリック フォルダの test\sub1 というフォルダにアクセスするには、以下の通り記述します。(Exchange Server のバージョンによっては「パブリック フォルダ」が半角の場合があります。)

   Set fldSub = Session.Folders("パブリック フォルダ").Folders("すべてのパブリック フォルダ").Folders("test").Folders("sub1")

これにより、fldSub という変数に test\sub1 フォルダにアクセスするための Folder オブジェクトが設定されます。

同様に、Outlook Connector で Windows Live Hotmail にアクセスしている場合は、Session.Folders("Hotmail のアドレス") で Hotmail のフォルダにアクセスできます。また、SharePoint のフォルダと同期している場合は、Session.Folders("SharePoint リスト") で同期している SharePoint のフォルダにアクセスできます。

なお、個人用フォルダも同様にこの方法でアクセスが可能ですが、同じ名前を複数の個人用フォルダで使用している場合、VBA マクロでは見分けが付きません。したがって、マクロで操作する必要がある個人用フォルダについては、必ず固有の名前をつけてください。

Outlook のマクロからパブリック フォルダにアクセスする方法」への3件のフィードバック

  1. Millefeuille様はじめまして。私の場合、SharePointのケースが参考になりました。有難うございます。一つ質問がございます。SharePoint リスト で接続してある、ディスカッション掲示板にOutlookのマクロを使い投稿をすることは可能でしょうか。Items.Add()すればよいのかなと考えたのですが、そもそも( )に何をセットすべきか分からず出来ませんでした。もしご存知でしたら、ご教示頂けると幸いです。

  2. To タヌ吉さんOutlook で SharePoint のディスカッション掲示板を同期している場合、そのフォルダのアイテムは Outlook の投稿アイテムとなります。そのため、PostItem として作成することでディスカッション掲示板のフォルダにマクロで投稿することが可能です。なお、Add メソッドは引数を省略することで、フォルダごとに適切なアイテムを作成しますので、あえて引数を設定することはありません。

  3. Millefeuille様アドバイスの通りに投稿したらうまくいきました!Outlookのマクロって非常に便利ですね。お蔭様でやりたい事が達成できました。有難うございます!タヌ吉

コメントを残す