Option Explicit '保険料控除等クラス 'プロパティの実体 Private mlngKingaku() As Long 'mlngKingaku(0):主キー 'mlngKingaku(1):外部キー 'mlngKingaku(2):社会保険料控除額 'mlngKingaku(3):小規模企業等共済掛金額 'mlngKingaku(4):生命保険料控除 'mlngKingaku(5):損害保険料控除 'mlngKingaku(6):住宅取得等特別控除 'プロパティへ値を格納 Public Sub GetProperty(ByVal objws As Worksheet, ByVal lngRow As Long, ParamArray vntKingaku() As Variant) '引数[objWS]:ワークシート '引数[lngRow]:レコード '引数[lngKingaku]:データ Dim i As Integer '整数型カウンタ 'ワークシートから Call GetData(objws, lngRow) For i = 0 To 6 vntKingaku(i) = mlngKingaku(i) Next End Sub 'プロパティの値の書き出し Public Sub LetProperty(ByVal objws As Worksheet, ByVal lngRow As Long, ParamArray vntKingaku() As Variant) '引数[objWS]:ワークシート '引数[lngRow]:レコード '引数[vntKingaku]:データ Dim i As Integer '整数型カウンタ For i = 0 To 6 mlngKingaku(i) = CLng(vntKingaku(i)) Next 'ワークシートへ Call LetData(objws, lngRow) End Sub 'ワークシート値の取得 Private Sub GetData(ByVal objws As Worksheet, ByVal lngRow As Long) '引数[objWS]:ワークシート '引数[lngRow]:レコード Dim i As Integer '整数型カウンタ Const bytCol As Byte = 1 'フィールド 'ワークシートの値の取得 For i = 0 To 6 mlngKingaku(i) = CLng(objws.Cells(lngRow, bytCol + i).Value) Next End Sub 'ワークシートに書き出し Private Sub LetData(ByVal objws As Worksheet, ByVal lngRow As Long) '引数[objWS]:ワークシート '引数[lngRow]:レコード Dim i As Integer '整数型カウンタ Const bytCol As Byte = 1 'フィールド開始 'ワークシートへ書き出し For i = 0 To 6 objws.Cells(lngRow, bytCol + i).Value = mlngKingaku(i) Next End Sub 'クラスのインスタンス時 Private Sub Class_Initialize() '配列再定義 ReDim mlngKingaku(6) As Long End Sub 'クラスの開放時 Private Sub Class_Terminate() '配列の開放 If IsEmpty(mlngKingaku) = True Then Erase mlngKingaku End Sub