|
>このように同じ様なコードを11回書いていますが、これらをまとめるような
>書き方はあるのでしょうか?
mickeypapa さん 今晩は
クラスモジュールを使ってみました。試してみて下さい。
クラスモジュールはまだ勉強中ですので、参考程度にして下さい。
★★ Class1 クラスモジュール
Private WithEvents MyCtrl As MSForms.ListBox
Private MyIndex As Long
Private MyCaller As Object
Public Property Let Item(NewCtrl As MSForms.ListBox)
Set MyCtrl = NewCtrl
End Property
Public Property Let Index(NewIndex As Long)
MyIndex = NewIndex
End Property
Public Property Let Caller(NewCaller As Object)
Set MyCaller = NewCaller
End Property
Private Sub MyCtrl_Click()
Dim i As Long
Dim myStr As String
With MyCtrl
For i = 0 To .ListCount - 1
If .Selected(i) Then myStr = myStr & .List(i, 0)
Next
End With
品名書込
End Sub
★★フォームモジュール
Private lstbbox(1 To 11) As New Class1
Private Sub UserForm_Initialize()
Dim i As Long
''' ↓Newを付けずに定義した時に必要
'''Set lstbbox = New Class1
For i = 1 To 11
With lstbbox(i)
.Item = Me.Controls("ListBox" & i)
.Index = i
.Caller = Me
End With
Next i
End Sub
Private Sub UserFom_Terminate()
Erase lstbbox
End Sub
|
|