即効テクニック |
●概要● クラスの作成1〜3で説明したメソッドとプロパティの設定,参照を利用して実際に使用するクラスを作成します。メソッドの第1と第2引数をプロパティを設定することで取得させます。サンプルコードでは新たにClass2を作成して第1引数のデータ配列と第2引数のデータ数を設定または参照できるプロパティを作成しています。●サンプルコード●
Private intData As Integer Private dblArrenge As Variant Public Property Let DataNumber(ByVal DataNumber As Integer) intData = DataNumber End Property Public Property Get DataNumber() As Integer DataNumber = intData End Property Public Property Let Arrangement(ByVal Arrangement As Variant) dblArrenge = Arrangement End Property Public Property Get Arrangement() As Variant Arrangement = dblArrenge End Property Public Function Sum() As Double Dim Counter As Integer Dim total As Variant For Counter = 1 To intData total = total + dblArrenge(Counter) Debug.Print total Next Counter Sum = total End Function●動作確認●
Sub Class_Sample4() Dim cn As New ADODB.Connection Dim rst As ADODB.Recordset Dim cls As Class2 Dim tanka(300) As Variant Dim 合計 As Double Dim i As Integer Set cn = New ADODB.Connection cn.ConnectionString = _ "Provider=microsoft.jet.oledb.4.0;" & _ "Data Source=d:\NorthWind.mdb" cn.Open Set rst = New ADODB.Recordset rst.Source = "商品" rst.ActiveConnection = cn rst.CursorLocation = adUseClient rst.CursorType = adOpenDynamic rst.LockType = adLockOptimistic rst.Open With rst Do While Not .EOF i = i + 1 tanka(i) = !単価 .MoveNext Loop End With Set cls = New Class2 cls.Arrangement = tanka() cls.DataNumber = rst.RecordCount 合計 = cls.Sum() MsgBox 合計 rst.Close cn.Close Set rst = Nothing Set cn = Nothing Set cls = Nothing End Sub
(実行結果) メッセージボックスに「73560」が表示されます。 ●補足● 配列tanka()をByValで引き渡しているのでデータ型はVariantとしています。