2009-10-20 79 views
1

我有一個Outlook VBA腳本調用自定義DLL以執行特定功能。該程序集編譯爲COM可見,但由於依賴關係衆多而未命名,因此未在GAC中註冊。爲了解決這個問題,我只是簡單地將程序集和它的依賴關係放在適當的程序文件位置,這些位置在Outlook中找到它們。沒問題。Outlook VBA腳本失敗,空引用錯誤,但對象不爲空

問題是我的腳本執行時,它拋出以下錯誤:

Run-time error '-2147467261 (80004003)' object reference not set to an instance of an object

下面的代碼:

Sub ProcessEmails(Item As Outlook.MailItem) 
    Dim oWikiPosterTool 
    Set oWikiPosterTool = CreateObject("WikiScript.WikiPoster") 

    Dim strID As String 
    Dim objMail As Outlook.MailItem 

    strID = Item.EntryID 
    Set objMail = Application.Session.GetItemFromID(strID) 

    Call oWikiPosterTool.PostMailItem(objMail.Body, objMail.SenderEmailAddress, objMail.SentOn) 
End Sub 

基本上,組件(C#)處理過帳數據達維基。我只是試圖將電子郵件中的基本信息傳遞給組裝方法,以便它能夠完成工作。但是,當Outlook子項到達Call線時,它會拋出錯誤。

奇怪的是,當我檢查涉及的對象時,沒有一個是空的。

ISNULL(oWikiPosterTool)返回False
ISNULL(objMail)返回False
等等...

這是錯誤告訴我,我的組件有一個問題,或者是它的一個問題腳本呢?免責聲明:我對VBA幾乎一無所知,並且盡我所能將它們一起砍成了碎片。

謝謝!

回答

0

我想通了 - 這是COM程序集拋出錯誤。