ExcelWork.info

Excel(エクセル)のマクロ・VBA・関数・操作などのメモ

VBAで、クラスを作成(クラスモジュール・インスタンス)

   

クラスの作成

VBA で、クラスを作成するには、クラスモジュールを使用します。クラスモジュールは、VBE(Visual Basic Editor)のメニューバーの「挿入」から「クラスモジュール」をクリックします。名前は、「Class1」「Class2」… と自動的に付けられますが変更することも可能です。この名前が、クラス名となります。
( ※ VBA のクラスには、継承はありません。)


クラスのプロパティ

クラスモジュール宣言セクションに、変数を宣言します。この変数が、クラスのプロパティとなります。

変数宣言の構文やスコープに関する詳細に関しては、変数やプロシージャのスコープ(適用範囲) を参照してください。


クラスのメソッド

クラスのプロパティが作成できたら、クラスモジュールに、プロシージャーを作成します。これが、クラスのメソッドとなります。

プロシージャーの作成の詳細は、プロシージャを作成する を参照してください。

クラスモジュールでの、プロシージャーの適用範囲に関しては、変数やプロシージャのスコープ(適用範囲) を参照してください。



インスタンス化

クラスを使用するには、インスタンス化する必要があります。これは、New キーワードを使って、標準モジュールに記述していきます。

【構文】

Dim instance As New classname

  または

Dim instance [ As instancetype ]
Set instance = New classname


項目の説明

  • instance  ・・・  作成するインスタンスの名前を指定します。
  • classname  ・・・  クラス名を指定します。
  • instancetype  ・・・  インスタンスのデータ型を指定します。バリアント型(Variant)または、オブジェクト型(Object)を指定します。


インスタンスの破棄

クラスを使用した後は、Nothing キーワードを使用して、インスタンスを破棄します。これで、メモリが開放されます。

【構文】

Set instance = Nothing


項目の説明

  • instance  ・・・  破棄するインスタンスの名前を指定します。


クラス 使用例

サンプルVBAソース



実行結果

Sub Sample01_Class1() の実行結果

VBA クラスの作成例 1

Sub Sample02_Class1() の実行結果

VBA クラスの作成例 2


 - クラス , ,

Message

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください

  関連記事

VBA クラス コンストラクタ・デストラクタ 例 01
VBAで、クラスを作成(コンストラクタ・デストラクタ)

VBA のコンストラクタとデストラクタ コンストラクタ コンストラクタは、クラス …

WithEvents キーワードを使ったイベントプロシージャ

イベント発生時の処理を作成 作成・実行の流れは以下のとおりです。 WithEve …

Property Get ステートメント 例01
Property プロシージャ(Property Get ステートメント)

Property プロシージャ Property プロシージャは、変数やクラスの …

Property プロシージャ(Property Set ステートメント)

Property プロシージャ Property プロシージャは、変数やクラスの …

Property プロシージャ(Property Let ステートメント)

Property プロシージャ Property プロシージャは、変数やクラスの …