9

注: VBA と Office 2007 を使用しています (C# を使用しますが、プロジェクトのパラメーターでは許可されていません)。

Access データベースから Outlook EntryID または MAPI "PR_ENTRYID" プロパティを提供することで、Outlook メール アイテムを開くことができる Outlook または API のメソッドを見つけようとしています。上記のコードへの参照を多数見つけましたが、実際にソリューションを投稿する人を見たことがありません。mapi32.dll および OLMAPI32.dll への参照をインクルードしようとしましたが、次のエラーが表示されます:「指定されたファイルへの参照を追加できません。」これは、これらの dll が .NET 用であるためだと思います。

あなたが与えることができるどんな助けも大歓迎です.

4

2 に答える 2

23

を使用しNamespace.GetItemFromIDます。2 番目のパラメーター (ストア ID) はオプションであることに注意してください。問題のストアが現在のセッションで既に Outlook によって処理されている場合は、省略できます。そうでない場合、Outlook は「不明なエントリ ID」例外を発生させます。ストア エントリ ID が指定されている場合、Outlook は最初にそれを開き、ストア プロバイダはそのエントリ ID を MAPI システムに登録する機会があります。

set App = CreateObject("Outlook.Application")
set NS = App.GetNamespace("MAPI")
NS.Logon
set Msg = NS.GetItemFromID(EntryID)
MsgBox Msg.Subject
于 2011-09-16T02:31:18.413 に答える
3

C# の場合:

var ns = OutlookApp.GetNamespace("MAPI");
var item = ns.GetItemFromID(entryId) as MailItem;

OutlookApp には Microsoft.Office.Interop.Outlook._Application タイプがあります。

于 2013-03-13T12:24:10.870 に答える