VBAプログラミング日記(Access)

1 各フォームの同じ機能のボタンの処理を共通化したい

 

clsButtonProcessing(クラスモジュール)

Option Compare Database

Option Explicit

Private WithEvents btn As CommandButton

Public Property Let Button(ByVal obj As CommandButton)

    Set btn = obj

    btn.OnClick = “[EVENT PROCEDURE]”  

→ ①Onのついたイベントを選ぶ

       ②[EVENT PROCEDURE]を記載

End Property

Private Sub btn_Click()

 ここにボタンをクリックしたときの処理を記載

    MsgBox btn.Caption など

 ちなみに使用中のフォームは、Screen.ActiveForm.Nameで特定できる。

End Sub

各フォームに記載

Private cls() As New clsButtonProcessing

Private Sub Form_Load()

    Dim c As Object

    ReDim cls(0)

    For Each c In Me.Controls

        If TypeName(c) = “CommandButton” Then

            ReDim Preserve cls(UBound(cls) + 1)

            cls(UBound(cls)).Button = c

        End If

    Next c

End Sub

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です