====== howto:excel:クラスモジュールを生成できない ======
===== .xlaに作成したクラスモジュールを生成できない =====
==== 症状1 ====
- .xlaファイルを作成
* オブジェクト名 test とする
* クラスモジュール test_class、メンバ変数 init() を作成
- .xlsファイルを作成
* クラスモジュール test_class の変数 sample を参照できない。
== 例).xls ==
Sub ボタン1_Click()
Dim sample As new test.test_class ← test_class を参照できない
Call aaa.Init("AAA","BBB","CCC")
End Sub
==== 対策1 ====
* クラスモジュール test_classのプロパティ「instancing」の設定を「**1-Private**」→「**2-PublicNotCreatable**」に変更
==== 症状2 ====
* **対策1** を実施後実行すると、「コンパイルエラー Newキーワードの使用方法が不正です」とエラーになる。
==== 対策2 ====
- .xla の標準モジュール内に、test_class オブジェクトを生成して戻り値で返すcreate_class() を作成
- .xls 側で作成した create_class() をCall して test_class を生成する。
== 例).xla ==
Function create_class()
Set create_class = New test.test_class
End Function
== 例).xls ==
Sub ボタン1_Click()
Dim sample As test.test_class
set sample = create_class()
Call sample.Init("AAA","BBB","CCC")
End Sub