Microsoft Access 掲示板

VBAでコードの一括追加 / 2

6 コメント
views
4 フォロー
2

同じようなコードの置換、追加が多数必要になるということは、同じような処理が多数あるということですよね。

Private Sub PI担当者ID_AfterUpdate()

ということから推測すると、多数のコントロール(テキストボックス等)があり、そのコントロールで更新が発生したら、PI測定日を現在の日付を入力してメッセージボックスを表示させたい、
ということがご希望のことかと思えますがどうでしょうか。

こういう場合、共通の処理は一つのプロシージャにまとめておくと修正があっても一か所ですみます。

例えば下記のようなに。

Sub Ctrl_Update()
    If Isnull(Me.ActiveControl) = False Then
        Me.PI測定日 = Date
        Msgbox "日付を代入しました。", vbokonly '追加
    End If
End Sub

Private Sub PI担当者ID_AfterUpdate()
     Ctrl_Update
End Sub

Private Sub 他のコントロール_AfterUpdate()
     Ctrl_Update
End Sub

さらに共通処理の部分をFunctionにしておけば、

Function Ctrl_Update()
    If Isnull(Me.ActiveControl) = False Then
        Me.PI測定日 = Date
        Msgbox "日付を代入しました。", vbokonly '追加
    End If
End Function

デザインビューでこの処理を適用したいコントロールを複数選択しておいて「更新後処理」に

=Ctrl_Update()

とすれば、コントロール_AfterUpdate() のコードをコントロール数分記述する必要もなくなります。

同じような処理を複数個所に繰り返し記述するはバグの原因になりかねませんので、纏められるものはなるべつ纏めるというのがプログラミングの鉄則で。

通報 ...