hatena
hatena
2023/06/08 (木) 20:12:16
同じようなコードの置換、追加が多数必要になるということは、同じような処理が多数あるということですよね。
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() のコードをコントロール数分記述する必要もなくなります。
同じような処理を複数個所に繰り返し記述するはバグの原因になりかねませんので、纏められるものはなるべつ纏めるというのがプログラミングの鉄則で。
通報 ...