このサイトの記事内では「アフィリエイト広告」などの広告を掲載している場合があります。
消費者庁が問題としている「誇大な宣伝や表現」とならないよう配慮しコンテンツを制作しておりますのでご安心ください。
問題のある表現が見つかりましたらお問い合わせよりご一報いただけますと幸いです。

GetSharedDefaultFolderメソッドでエラーが起こる時の対策(Outlook VBA)

2022年12月23日

Outlook VBAで他の人の共有フォルダへアクセスする時には、GetSharedDefaultFolderメソッドを使用します。

しかし、VBAで共有フォルダにアクセスしようとすると、原因の分かりづらいエラーが起こることがあります。

私もタスクの共有フォルダにアクセスしようとした際に、原因がなかなか分からず苦労しました

同じ苦労をされる方を減らすために、エラー原因となる2つのポイントをまとめることにしました。

共有フォルダの取得で困っている人は参考にしてみてください。

VBAが難しいと感じたら
ココナラにてマクロ(VBA)の作成代行を始めました。
ご依頼はこちらから

1. 既定フォルダの共有設定(参照)を追加する

GetSharedDefaultFolderメソッドは他の人の既定フォルダを参照します。
メール、予定、タスクなど各機能で既定のフォルダが存在しています。

GetSharedDefaultFolderメソッドは既定フォルダを参照しようとするため、既定フォルダの共有設定(参照)を行っていないと、GetSharedDefaultFolderメソッドがエラーとなります。
(フォルダの所有者の方に既定フォルダの共有を頼みましょう)

また、共有するためにフォルダを作っている場合も注意が必要です。

Outlookでは自分で作ったフォルダは、既定フォルダの下層のフォルダとして扱われます。

VBAで下層のフォルダにアクセスするためには、既定フォルダ⇒下層フォルダの順にアクセスする必要があります。

そのため、共有用のフォルダを作っている場合、そのフォルダだけでなく既定フォルダの共有設定(参照)が必要になります。

2. Exchangeキャッシュの「共有フォルダーをダウンロード」を無効化

こちらは共有するためにフォルダを作っている場合に必要な設定になります。

ExchangeキャッシュはOutlookのデータをローカルファイルへと保存する仕組みです。

Exchangeキャッシュには共有フォルダも保存することができます。

しかし、この設定をしているとGetSharedDefaultFolderメソッドでアクセスした時に、共有相手のフォルダではなく、ローカルファイルの情報へアクセスしてしまいます。

既定のフォルダへアクセスするだけならいいのですが、その下層フォルダへアクセスしたい場合には問題が出てきます。

ローカルに保存されているデータからでは、下層フォルダの情報にたどり着けないためです。

VBAでやってみると分かるのですが、既定のフォルダへはアクセスできるのですが、下層のフォルダの数が0個になるはずです。

この問題の対策は、Exchangeキャッシュの設定変更です

VBAが難しいと感じたら
ココナラにてマクロ(VBA)の作成代行を始めました。
ご依頼はこちらから

VBA

Posted by やろまい