Пользовательская форма VBA — добавить метку в фрейм

#vba #label #frame #userform

#vba #этикетка #рамка #пользовательская форма

Вопрос:

У меня есть шесть маленьких фреймов внутри большого фрейма, и я создал кнопку для добавления нового маленького фрейма внутри большого фрейма с помощью этого кода:

 For Each cCont In Me.Controls
    If TypeName(cCont) = "Frame" Then
        lCount = lCount   1
    End If
Next cCont

If lCount = 6 Then
    '384 is the top property of No.6 frame 
    '72 is every small frame distance
    top = 384   72
ElseIf lCount > 6 Then
    top = 384   (72 * (lCount - 5))
End If

Set addBtn = bigFrame.Controls.Add("Forms.Frame.1")
With addBtn
    .Height = 66
    .Left = 6
    .top = top
    .Width = 312
    .name = "frameName" amp; lCount   1
    .Caption = "frameName - " amp; lCount   1
    .Font.Size = 12
End With
 

Итак, вот мой вопрос: как я могу добавить новую метку в новый маленький фрейм?
Я знаю, что код должен быть примерно таким:

 Set label = bigFrame.frameName.Controls.Add("Forms.Label.1")
 

После добавления нового маленького фрейма, имя нового маленького фрейма должно быть frameName7. Что я должен написать в коде, чтобы при нажатии на кнопку добавлялась небольшая рамка с меткой. Спасибо.

Ответ №1:

У вас уже есть ссылка на только что вставленный фрейм, поэтому вы можете просто:

 Dim myLabel As MSForms.Label
Set myLabel = addBtn.Controls.Add("Forms.Label.1", "MyLabel", True)
 

или непосредственно из пользовательской формы с помощью:

 Set myLabel = Me.Controls("FrameName").Controls.Add("Forms.Label.1", "MyLabel", True)