Что ж тут сложного? Делаем массив имен переменных, а к каждому новому объекту присваиваем новое имя. Из VB вызов будет через массив переменных, но адресоваться он будет не массиву, а самостоятельным объектам. Хотя, возможно, есть и другой способ.
- Код: Выделить всё
Const LB As Long = 0 'Самый первый индекс
Const UB As Long = 1 'Самый последнмй индекс
Dim Picture1() As PictureBox, I&, X&, Y&
Sub Form_Load()
ReDim Picture1(LB To UB) As PictureBox
For I = LB To UB
Set Picture1(I) = Me.Controls.Add("VB.PictureBox", "Picture" & I)
With Picture1(I)
.Visible = True
.Move X, Y
X = X + 100
Y = Y + 100
End With
Next
End Sub
Sub Form_Unload(Cancel As Integer)
For I = LB To UB
Set Picture1(I) = Nothing
Next
End Sub