次の Code-Block を使用して、Outlook で設定されているパブリック フォルダーを選択します。
const
olPublicContactsFolder = $00000012; //constant for the public folder
begin
Outlook := CreateOleObject('Outlook.Application');
// Get name space
NameSpace := Outlook.GetNameSpace('MAPI');
// Get root public folder
ContactsRoot := NameSpace.GetDefaultFolder(olPublicContactsFolder); //<-- Error
Contacts:= Contactsroot;
Outlook にパブリック フォルダがない場合 (Outlook にパブリック フォルダが設定されていない、Exchange Server がない場合)、マークされた行でエラーが発生します。
問題は、パブリック フォルダーが設定されているかどうかを事前に検出して、そのエラーを回避する方法です。
例外は Microsoft API (EOleException) によって外部で発生するため、try...finally/except ブロックでエラーをキャッチしても機能しませんでした。
フォルダーが存在するかどうかを検出する別の方法は考えられません。エラーの原因となっている行は、パブリックフォルダーを選択してそのプロパティを取得するために不可欠です。
挨拶