Attribute VB_Name = "Module1" '■ マクロ500連発<第2段> ' ' クラスモジュールを利用する (4) Instancingプロパティが持つメリット ' <標準モジュール:Module1> ' ' Copyright(C) 2000 Sunago ' Option Explicit '/* 必要に応じて外部ブックのクラスのインスタンスを作成する */ Dim Wareki1 As clsWareki Sub Macro1() WarekiInit Wareki1 Wareki1.Message WarekiTerm Wareki1 End Sub Attribute VB_Name = "Module2" '■ マクロ500連発<第2段> ' ' クラスモジュールを利用する (4) Instancingプロパティが持つメリット ' <標準モジュール:Module2> ' Copyright(C) 2000 Sunago ' ' ※このモジュールは説明のために作成したもので動作しません。 Option Explicit '/* 外部ブックのクラスモジュールを呼び出す */ Dim Wareki2 As clsWareki Sub Macro2() Set Wareki2 = New clsWareki ''インスタンスの作成 Wareki2.Message Set Wareki2 = Nothing ''インスタンスの開放 End Sub Attribute VB_Name = "Module3" '■ マクロ500連発<第2段> ' ' クラスモジュールを利用する (4) Instancingプロパティが持つメリット ' <標準モジュール:Module3> ' Copyright(C) 2000 Sunago ' Option Explicit '/* 外部ブックのクラスモジュールを呼び出す */ Sub Macro3() Wareki3.Message End Sub Attribute VB_Name = "Module4" '■ マクロ500連発<第2段> ' ' クラスモジュールを利用する (4) Instancingプロパティが持つメリット ' <標準モジュール:Module4> ' Copyright(C) 2000 Sunago ' Option Explicit '/* 外部ブックのクラスモジュールを呼び出す(望ましい例) */ Dim myClass1 Dim myClass2 Sub Macro4() Call Macro4a MsgBox myClass1 Is Nothing, , "myClass1" Call Macro4b MsgBox Wareki3 Is Nothing, , "Wareki3" End Sub Sub Macro4a() Set myClass1 = Wareki3 myClass1.Message Set myClass1 = Nothing End Sub Sub Macro4b() Set myClass2 = Wareki3 myClass2.Message Set myClass2 = Nothing End Sub Attribute VB_Name = "clsWareki" '■ マクロ500連発<第2段> ' ' クラスモジュールを利用する (4) Instancingプロパティが持つメリット ' <クラスモジュール:clsWareki> ' ' Copyright(C) 2000 Sunago ' Option Explicit Public Sub Message() MsgBox "clsWarekiクラスのMessageメソッドです", , ThisWorkbook.Name End Sub