| 
    
     |  | >>お教え願いたいのですが、 >>例えば、スピンボタンとテキストボックスが1セットで、
 >>スピンボタンを操作すると、対のテキストボックスに
 >>値が反映される、さらにシート上のセルに代入するような
 >>イベントプロシージャを作成したとします。
 >>下記のような感じでしょうか。
 >>
 >>Private Sub SpinButton1_Change()
 >>  TextBox1.Text = SpinButton1.Value
 >>  Cells(10, 20).Value = TextBox1.Text
 >>End Sub
 >>
 >>このセットが同一UserForm上に、仮に100個あり、個別に
 >>動作させる場合、簡略して記述する方法はないのでしょうか。
 >>(値を代入するセルの位置は、セットによって変わります)
 >スピンボタンのChangeイベントなら、クラスモジュールを使用すると
 >可能です。
 >100個のセットではテストが大変だったので3個のセットにしてみました。
 >
 >ユーザーフォーム(Userform1)には
 >テキストボックスが3個-----(Textbox1〜Textbox3)
 スピンボタン3個   ------(Spinbutton1〜Spinbutton3)
 ↑訂正
 >
 >クラスモジュールを挿入して下さい(既定名のClass1をそのまま使います)
 >クラスモジュールのコードは、
 >'=============================================================
 >  Public txt As msforms.TextBox
 >  Public WithEvents spin As msforms.SpinButton
 >  Public id As Long
 >Private Sub spin_Change()
 >  txt.Text = spin.Value
 >  Cells(id, 20).Value = txt.Text
 >'   ↑これは、仕様が分からないのでアレンジしました。
 >'   idの値を見て、個別の処理も記述できます。
 >End Sub
 >
 >で、Userform1のモジュールには、
 >'===================================================================
 >Private sample(1 To 3) As New Class1
 >'          ↑100の場合は、100にする
 >Private Sub UserForm_Initialize()
 >  For idx = 1 To 3 '←ここも100回ループ
 >
 >   With sample(idx)
 >     .id = idx
 >     Set .spin = Controls("spinbutton" & idx)
 >     Set .txt = Controls("textbox" & idx)
 >     End With
 >   Next idx
 >End Sub
 >
 >確認してみて下さい。
 >
 >
 >クラスモジュールのポピュラーな用途です。
 
 |  |