|
▼shutlmharze さん:
こんにちは
>のように纏めてしまいたいのです。何か方法はあるでしょうか。
もっとうまいやり方があるとは思いますが、こんなのでもいけます。
面倒くさいですよ。
もし判らなければ、同じプロシージャを呼び出すコードを全部の
イベントプロシージャに書きましょう。その方がはるかに早いと思います。
'//////////////////UserForm//////UserForm1//////////////
'//UserFormに2つだけCommandButtonを貼り付けているだけ////////
Option Explicit
Private clsButton(2) As Class1
Private Sub UserForm_Initialize()
Set clsButton(0) = New Class1
Set clsButton(0).SetButton = Me.CommandButton1
Set clsButton(1) = New Class1
Set clsButton(1).SetButton = Me.CommandButton2
End Sub
Private Sub UserForm_Terminate()
Set clsButton(0) = Nothing
Set clsButton(1) = Nothing
End Sub
'////////Classモジュール///// Class1 ////////
Option Explicit
Private WithEvents mButton As MSForms.CommandButton
Public Property Set SetButton(pButton As MSForms.CommandButton)
Set mButton = pButton
End Property
Private Sub Class_Terminate()
If Not mButton Is Nothing Then
Set mButton = Nothing
End If
End Sub
Private Sub mButton_Click()
Unload UserForm1
End Sub
研究してくださいませ。この手法はClass(クラス)を使用しています。
|
|