クラスモジュールでクラスを作成します。クラスに実装するのはメソッドとプロパティ
ですが、ここではまずメソッドを作成してみます。
クラスを作成するにはメニューバーの「挿入」→「クラスモジュール(C)」を選択します。
クラス名を「Class1」としてそのクラスモジュールにプログラムを記述していきます。
メソッドのみであれば通常の関数(Function)を作成するのとなんら変わりありませんが、
通常、後述するプロパティを設定してきちんとしたクラスを作成していく場合には引数
などの隠蔽を行います。
ここでは配列を受け取り、その合計を求めるメソッドを作成します。
● サンプル ●
クラスモジュールに以下のコードを記述します。
Public Function Sum(Arrangement() As Double, Number As Integer) As Double
Dim counter As Integer
Dim total As Variant
For counter = 1 To Number
total = total + Arrangement(counter)
Debug.Print total
Next counter
Sum = total
End Function
● 動作確認 ●
モジュールに以下のコードを記述して作成したクラスを呼び出します。
ここでは「NorthWind.mdb」の「商品」テーブルの「単価」をレコードセットから
配列に格納し、その配列とデータ数をクラスメソッド「Sum」に渡してその結果を
表示させています。
Sub Class_Sample1()
Dim cn As New ADODB.Connection
Dim rst As ADODB.Recordset
Dim cls As Class1
Dim tanka(300) As Double
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 Class1
合計 = cls.Sum(tanka(), rst.RecordCount)
MsgBox 合計
rst.Close
cn.Close
Set rst = Nothing
Set cn = Nothing
Set cls = Nothing
End Sub
(実行結果)
メッセージボックスに「73560」が表示されます。
● 補足説明 ●
作成したクラスを使用するにはサンプルコードのようにクラスのオブジェクトを
作成してから利用します。
|