●概要●
クラスのオブジェクト型プロパティを作成します。通常、プロパティの設定はLetステートメントで行いますが、プロパティの型がオブジェクト型である場合にはSetステートメントを使用します。
このSetステートメントのプロシージャがないと、不具合が生じます。Setステートメントを使用する場合はGetステートメントとLetステートメントを合わせて使用します。ここではExcelのApplicationオブジェクトをクラスのプロパティとして設定します。
●サンプルコード●
クラスモジュールに以下のコードを記述します。
Private objXls As .Application
Public Property Set objExcel(ByRef objExcel As Excel.Application)
Set objXls = objExcel
End Property
Public Property Get objExcel() As Excel.Application
Set objExcel = objXls
End Property
Public Property Let objExcel(ByRef objExcel As Excel.Application)
Set objXls = objExcel
End Property
Public Function Excel_Exe(FileName1)
objXls.Workbooks.Open FileName:=FileName1
MsgBox objXls.Worksheets.Count
objXls.Workbooks.Close
End Function
●動作確認●
モジュールに以下のコードを記述して作成したクラスを呼び出します。
ここでは「d:\商品.xls」のシート数を表示させています。
Sub Class_Sample5()
Dim xls As Excel.Application
Dim cls As Class3
Set xls = New Excel.Application
Set cls = New Class3
cls.objExcel = xls
cls.Excel_Exe ("d:\商品.xls")
Set xls = Nothing
Set cls = Nothing
End Sub
(実行結果)
メッセージボックスに「1」が表示されます。