次の方法で共有


Outlook 2010 のオブジェクト モデルを使用した際の既知の問題

元の KB 番号: 2265515

概要

この記事では、Microsoft Outlook 2010 オブジェクトモデルを使用する際に発生する可能性のある既知の問題について説明します。

権限の昇格されたプロセスからOutlook.Applicationオブジェクトを作成できません。

Windows Vista、Windows 7、または管理者権限で実行可能なその他のオペレーティングシステムで、管理者権限で実行しているプロセスを使用してOutlookを自動化することはできません。 これはCOMの根本的な制限です。 Outlook と自動化された Outlook のカスタムプログラムの両方は、同じ整合性レベルで実行する必要があります。

BeforeItemMove イベントと BeforeFolderMove イベントは発生しません。

いくつかのシナリオでは、BeforeItemMove イベントと BeforeFolderMove イベントが発生しないことがあります。 次のようなシナリオが知られています: タスク バーからの予定の削除、カレンダーやタスク バーからの会議の削除、デフォルト以外のフォルダへのイベントの実装、無視する会話コマンドを使用したアイテムの削除。 これらの問題は、Outlook 2010の2010年12月の累積更新プログラムで修正されました。

オンラインモードでGetPropertyメソッドが失敗する

Microsoft Exchange 2010 をオンラインモードで使用していて、保存されていないアイテムからプロパティを取得するために GetProperty メソッドを使用する場合、メソッドが失敗することがあります。 これは、Exchange 2010 が名前付きプロパティを処理する方法が変わったためです。 Outlook 2007も影響を受けています。 現在の回避策は次のとおりです。

  • キャッシュ モードで Outlook を使用します。
  • メソッドGetPropertyを呼び出す前に、アイテムが保存された状態であることを確認してください。

インスペクターウィンドウが正しく閉じない可能性があります。

Microsoft Visual Studio Tools for Office (VSTO) に GetVisibleCallback 関数を実装すると、ユーザーはインスペクタウィンドウを正しく閉じられない可能性があります。 2010年2月のOutlook 2010の累積的更新プログラムでこの問題が修正されました。

BeforeCheckNames イベントが Outlook 2007 で発生した時刻とは異なる時刻に発生する

Outlook 2010 では、BeforeCheckNames イベントは、受信者が解決される前ではなく、解決された後に発生します。 これは、イベントを取り消しても効果がないことを意味します。 この問題は、Outlook 2010 2011 年 2 月の累積的な更新プログラムで修正されました。

ビューのオブジェクトモデルがユーザーインターフェースの実際のビューに対応していない可能性があります。

プログラムでビューを変更したり、ビュー設定を取得したりする場合、オブジェクトモデルの設定がユーザーインターフェイスでOutlookが表示する実際のビュー設定と一致しないシナリオが存在する可能性があります。 2011年2月のOutlook 2010累積更新プログラムで、この問題を解決するための改善が行われました。

[アイテムの挿入] ウィンドウを使用すると、添付ファイルが正しく維持されない

Outlook オブジェクト モデルを使用して添付ファイルを追加および削除するときに、ユーザーが「アイテムの挿入」コマンドを使用してアイテム添付ファイルを挿入すると、余分な添付ファイルが発生することがあります。 ダイアログボックスが、添付ファイルを疑わしいものと扱うバグが原因です。添付ファイルが実際には疑わしくない場合でも、この問題が発生します。 そのため、追加の添付ファイルがメッセージと共に保存されます。 2010年2月のOutlook 2010の累積的な更新プログラムでこの問題は修正されました。

POP/IMAP アカウントを使用してアイテムの添付ファイルを挿入することはできません。

Attachments.Addメソッドを使用して POP/IMAP アカウントを使用して Outlook アイテムの添付ファイルを追加すると、呼び出しは失敗します。 この問題は、2010年12月のOutlook 2010の累積更新プログラムで修正されました。

MailItem.Recipients.ResolveAll 関数は、宛先フィールドから受信者を削除します。

作成モードでユーザーが未解決の受信者をメッセージに追加し、そのアイテムに対してRecipients.ResolveAllメソッドが呼び出された場合、受信者は削除されます。 この動作を変更する予定はありません。

送信済みアイテム フォルダー内の会議出席依頼に対して GetAssociatedAppointment メソッドが失敗する

Sent Items フォルダーの会議依頼から予定を取得しようとすると、呼び出しに失敗します。 2010年2月のOutlook 2010の累積的更新プログラムでこの問題が修正されました。

予定データは、検査ウィンドウが開いている場合、更新されない可能性があります。

Outlook 2010における予定管理とキャッシュ方法の内部変更により、該当する予定がインスペクターウィンドウで開かれている場合、オブジェクトモデルは予定の例外に関する最新情報を提供しない可能性があります。 ストアからアイテムの参照を解除し再取得しても、この動作は発生します。 この問題を回避するために、予定ウィンドウが閉じていることを確認してください。 この動作を変更する予定はありません。

NavigationFolder オブジェクトからフォルダーオブジェクトを取得しようとすると、「操作が失敗しました」というエラーメッセージが表示されることがあります。 この問題は、Outlook 2010で新しく導入された共有カレンダーフォルダー機能に関連しています。 Outlookが初期化される前にNavigationFolder.Folderオブジェクトを取得すると、この問題が発生します。 この初期化はデフォルトでは行われません。 この問題を回避するには、まずデフォルトのカレンダーフォルダーを参照し、GetExplorer メソッドを呼び出してください。 これにより、Outlook は共有予定表を間接的に初期化します。 次のOutlook VBAコードの例は、この問題と解決策を示しています。

Sub GetCalendars()
  ' Work around
  Set oCalFolder = Session.GetDefaultFolder(olFolderCalendar)
  Set oCalExp = oCalFolder.GetExplorer

  Dim oModules As Outlook.CalendarModule
  Dim oMyCalendarGroup As Outlook.NavigationGroup
  Dim oPeopleNavGroup As Outlook.NavigationGroup
  Set oModules = ActiveExplorer.NavigationPane.Modules.GetNavigationModule(OlNavigationModuleType.olModuleCalendar)
  Set oMyCalendarGroup = oModules.NavigationGroups.GetDefaultNavigationGroup(OlGroupType.olMyFoldersGroup)
  Set oPeopleNavGroup = oModules.NavigationGroups.GetDefaultNavigationGroup(OlGroupType.olPeopleFoldersGroup)
  GetNavFolders oMyCalendarGroup
  GetNavFolders oPeopleNavGroup
End Sub

Private Sub GetNavFolders(ByVal obj As Outlook.NavigationGroup)
  Set oNavFolders = obj.NavigationFolders
  Dim oNavFolder As Outlook.NavigationFolder
  For Each oNavFolder In oNavFolders
    Debug.Print oNavFolder.DisplayName & "==>" & oNavFolder.Folder ' <-- this errors
  Next
End Sub