Я хочу расширить свою пользовательскую форму, когда я нажимаю на флажок.Некоторые элементы должны перемещаться на одно и то же значение, которое расширяет моя пользовательская форма, чтобы они всегда оставались на одном и том же расстоянии от нижней границы формы.
В данный момент я перемещаю каждый элемент по отдельности, например, где «Ausklapphoehe» - этозначение для перемещения / расширения (работает отлично, но, думаю, не очень хорошо закодировано):
Private Sub Filtereigenschaften_Click()
If Filtereigenschaften.Value = False Then
Filtergruppe.Visible = False
UserForm.Height = UserForm.Height - Ausklapphoehe
Button.Top = Button.Top - Ausklapphoehe
FHLabel.Top = FHLabel.Top - Ausklapphoehe
FHBox.Top = FHBox.Top - Ausklapphoehe
NutenabstandLabel.Top = NutenabstandLabel.Top - Ausklapphoehe
NutenabstandBox.Top = NutenabstandBox.Top - Ausklapphoehe
SpinButton.Top = SpinButton.Top - Ausklapphoehe
VersionLabel.Top = VersionLabel.Top - Ausklapphoehe
End If
If Filtereigenschaften.Value = True Then
Filtergruppe.Visible = True
UserForm.Height = UserForm.Height + Ausklapphoehe
Button.Top = Button.Top + Ausklapphoehe
FHLabel.Top = FHLabel.Top + Ausklapphoehe
FHBox.Top = FHBox.Top + Ausklapphoehe
NutenabstandLabel.Top = NutenabstandLabel.Top + Ausklapphoehe
NutenabstandBox.Top = NutenabstandBox.Top + Ausklapphoehe
SpinButton.Top = SpinButton.Top + Ausklapphoehe
VersionLabel.Top = VersionLabel.Top + Ausklapphoehe
End If
End Sub
У меня есть три идеи для сокращения кода:
- Сохранение идентификаторов элементов"в массиве и выполнить повторяющуюся задачу, перебирая массив (не знаю, как хранить элементы в массиве)
- Просто сгруппируйте элементы и выполните задачу только для группы (не знаю, как обращаться к группам)в коде vba)
- присваивает элементам общий тег и просто указывает на элементы над тегом (не знаю, как адресовать теги)