2015-09-27 60 views
1

是否可以引用COM註冊的DLL,然後在VBA代碼的構造函數中創建需要參數的對象?VBA導入COM註冊的dll並使用參數調用構造函數

我已成功地引用了已在regasm中註冊的Access 2013(64位)中的tlb,並且我設法創建了一個不需要構造函數中的參數的簡單對象。

從我讀的,它不是。我現在面臨重大的重構嗎?

+0

您是否特意*需要*來操縱VBA中的對象?我問,因爲TLB在版本和更新方面可能是一場噩夢,我個人在開發Office插件時不惜一切代價避免它們。相反,我在.NET中創建了可從VBA調用訪問的方法,並且使用一種方法來完成我需要的所有操作,並保留.NET中所有對象的操作。這意味着我不需要使用regasm,但可以動態調用這些方法,而不必強制鍵入它們。如果你想進一步討論,請給我打電話。 – stuzor

回答

2

它不一定是「主要」。你只需要一個工廠方法,一個接受構建對象所需的所有參數。例如:

public class Foo { 
    internal Foo(int arg1, string arg2) { 
     // etc... 
    } 
    // Other methods and properties 
    //... 
} 

public class FooFactory { 
    public Foo Create(int arg1, string arg2) { 
     return new Foo(arg1, arg2); 
    } 
} 

現在,您只需在您的VBA代碼中使用FooFactory.Create()。

相關問題