即効テクニック |
●概要● クラスモジュールでクラスを作成します。クラスに実装するのはメソッドとプロパティですが、ここではまずメソッドを作成してみます。クラスを作成するにはメニューバーの「挿入」→「クラスモジュール(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」が表示されます。 ●補足● 作成したクラスを使用するにはサンプルコードのようにクラスのオブジェクトを作成してから利用します。