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

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

2024年12月3日

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

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

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

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

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

VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

[ファイル]、[アカウント設定]、[アカウント設定] の順にクリックします。

Exchange アカウントをクリックしてから、[変更] の [詳細設定] をクリックします。

[詳細設定] タブの [Exchange キャッシュ モードの設定] で、必要なオプションをオンにします。

https://support.microsoft.com/ja-jp/office/exchange-%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5-%e3%83%a2%e3%83%bc%e3%83%89%e3%82%92%e6%9c%89%e5%8a%b9%e3%81%ab%e3%81%99%e3%82%8b-7885af08-9a60-4ec3-850a-e221c1ed0c1c?ui=ja-jp&rs=ja-jp&ad=jp

上記のようにOutlookからExchangeキャッシュの設定を開き、「共有フォルダーをダウンロード」のチェックを外すことで対策できます。

謝辞

Exchangeキャッシュがエラー原因となることは、下記ページを閲覧した際に気付きました。

きぬあささん、ありがとうございました。

キャッシュから読み込んでいるのが原因かもしれません。
Exchange キャッシュ モード( https://support.office.com/ja-jp/article/7885af08-9a60-4ec3-850a-e221c1ed0c1c )の有効・無効を確認し、「共有フォルダーをダウンロード」が有効になっているのであれば、一度無効にして動作を確認してはいかがでしょうか。

https://support.microsoft.com/ja-jp/office/exchange-%e3%82%ad%e3%83%a3%e3%83%83%e3%82%b7%e3%83%a5-%e3%83%a2%e3%83%bc%e3%83%89%e3%82%92%e6%9c%89%e5%8a%b9%e3%81%ab%e3%81%99%e3%82%8b-7885af08-9a60-4ec3-850a-e221c1ed0c1c?ui=ja-jp&rs=ja-jp&ad=jp

《VBA上級者になりたい人へ》
VBA上級者を目指したい人にはパーフェクトExcel VBA一択です。
この本を読み切れば間違いなくVBA上級者になれます。

created by Rinker
技術評論社
¥3,608 (2024/12/03 20:42:15時点 Amazon調べ-詳細)
VBAが難しいと感じたら
ココナラにてVBAの作成依頼を受け付けています。
ご依頼・ご相談はこちらから

VBA

Posted by やろまい