2006年11月10日

VBA:メソッドをコールバックする

コールバックさせるメソッド名を処理に渡して、CallByName関数でそのメソッドをコールバックする。
例)ボタンを押すと、リストビューに抽出されたデータが表示される

Public Sub ExtractData(ByVal ScoreMin As Integer, ByVal ScoreMax As Integer, List As Control)
Dim SQL As String
    SQL = "select * from スコアテーブル where スコア between " & CStr(ScoreMin) & " and " & CStr(ScoreMax)
    With CurrentDb.OpenRecordset(SQL, dbOpenForwardOnly)
        Do Until .EOF
            CallByName Me, "OnData", VbMethod, !名前, !スコア, List
            .MoveNext
        Loop
        .Close
    End With
End Sub

Private Sub Exec_Click()
    ScoreList.ListItems.Clear
    ExtractData 80, 95, ScoreList
End Sub

Public Sub OnData(ByVal Name As String, ByVal Score As Long, List As Control)
    With List.ListItems.Add(, , Name)
        .SubItems(1) = CStr(Score)
    End With
End Sub
posted by 忘却の達人 at 08:32| Comment(0) | TrackBack(0) | vba | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック