Home > 即効テクニック > AccessVBA > コーディング・デバッグ > クラスの作成5(オブジェクト型プロパティの設定)

即効テクニック

コーディング・デバッグ

クラスの作成5(オブジェクト型プロパティの設定)

(Access 97)
●概要●
クラスのオブジェクト型プロパティを作成します。通常、プロパティの設定は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」が表示されます。