ユーザ用ツール

サイト用ツール


サイドバー


メニュー




スポンサーリンク





howto:excel:クラスモジュールを生成できない

howto:excel:クラスモジュールを生成できない

.xlaに作成したクラスモジュールを生成できない

症状1

  1. .xlaファイルを作成
    • オブジェクト名 test とする
    • クラスモジュール test_class、メンバ変数 init() を作成
  2. .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

  1. .xla の標準モジュール内に、test_class オブジェクトを生成して戻り値で返すcreate_class() を作成
  2. .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
howto/excel/クラスモジュールを生成できない.txt · 最終更新: 2015/12/17 20:32 by dokuroot