コメントで、ユーザーフォームのタイプごとに配列を探していることを示したので...これは、ラベルで機能する例の大まかなドラフトです(MsForms.Label
)。すべてのコントロールをループしますが、配列が作成されると自由に使用できます。
Option Explicit
Private labels() As MSForms.label
Private Sub PopulateLabelArray()
Dim ctrl As Control
Dim count As Long
Dim lbl As Variant
For Each ctrl In Me.Controls
If TypeOf ctrl Is MSForms.label Then
count = count + 1
End If
Next
ReDim labels(1 To count)
count = 0
For Each ctrl In Me.Controls
If TypeOf ctrl Is MSForms.label Then
count = count + 1
Set labels(count) = ctrl
End If
Next
End Sub
Private Sub UserForm_Initialize()
Dim lbl As variant
'Populate the label array.
PopulateLabelArray
'Test the array
For Each lbl In labels()
Debug.Print lbl.Caption
Next
End Sub
これは改善できると確信していますが、これは機能的です。