2012-04-04 19 views
3

Excel用のXLAアドインを作成しました。このアドインには、クラスモジュールが含まれています。私はこのクラスモジュールをどのように公開して使用することができるのか不思議でした。私は検索し、Visual Studioでそれを行う方法を見つけましたが、残念ながら私はVisual Studioを持っていません。 XLAからこれを行う方法はありますか?ExcelのXLAアドインでのクラスの公開

答えて

6

クラスのインスタンスを返すXLAでパブリック関数を作成できます。 XLAへの参照を持つ任意のブックがその関数を呼び出すことができます。 Class1を使用するBook2とClass1を使用するBook3があるとします。 Class1 InstancingプロパティをPublic Not Creatable(クラスモジュールではF4)に変更します。標準モジュールにブック2で

機能BOOK3で

Public Function InstantiateClass1() As Class1 

    Set InstantiateClass1 = New Class1 

End Function 

を作成し、

Public Sub DoStuff() 

    Dim clsClass1 As Book2Project.Class1 

    Set clsClass1 = instantiateclass1 

    clsClass1.prop = "something" 

    Debug.Print clsClass1.prop 

End Sub 

関数を呼び出すクラス1は、この例では支柱と呼ばれる1つの特性を有しています。 Book2のVBProject名がBook2Projectに変更されました。

+0

+1通常のようにターゲットを叩く:) –

+0

+1。私はすべてのインスタンス作成関数をFactory Class Module(この例ではBook2 XLAで作成され、Public Not Creatable設定でカプセル化されています)にカプセル化します。次に、クライアントが使用するファクトリインスタンスを作成するために、標準モジュールで作成するメソッドは1つだけ必要です。これにより、クライアントは、Intellisenseを使用して、ファクトリオブジェクトのすべての使用可能なインスタンス化メソッドを表示することもできます。 –

関連する問題