MyTetra Share
Делитесь знаниями!
Использование классов для элементов управления на форме
31.12.2017
16:02
Текстовые метки: VBA, элементуправления,CheckBox
Раздел: VBA - Форма

Использование классов для элементов управления на форме

В прикреплённом файле - пример макроса для автоматического создания на форме элементов управления.

Благодаря использованию модуля класса, всем создаваемым элементам управления (в данном случае это CheckBox-ы) назначается один и тот же обработчик событий.

Для проверки запустите форму нажатием кнопки на листе Excel, и пощелкайте на чекбоксах на разных вкладках формы.

Код модуля класса:

Public WithEvents CheckBox As MSForms.CheckBox

 

Public MPname As String

Public MPindex As Integer

Public Index As Integer

 

Sub CheckBox_Change()

msg = "Изменено состояние чекбокса номер " & Me.Index & vbNewLine & vbNewLine

msg = msg & "на вкладке " & Me.MPname & " (индекс вкладки = " & Me.MPindex & ")" _

& vbNewLine & vbNewLine & vbNewLine

msg = msg & "Новое состояние: " & Me.CheckBox.Value

MsgBox msg, vbInformation, "Вы изменили состояние чекбокса!"

End Sub

При запуске формы на неё добавляются элементы управления:

Dim MyCheckBox As chb, coll As Collection

 

Private Sub UserForm_Initialize()

Set coll = New Collection

For m = 0 To Me.MultiPage1.Pages.Count - 1

mn = F.MultiPage1(m).Caption

For i = 1 To 7

Set MyCheckBox = New chb

Set MyCheckBox.CheckBox = F.MultiPage1(m).Controls.Add("forms.CheckBox.1")

With MyCheckBox

With .CheckBox

.AutoSize = True: .Left = 30: .Top = 20 + i * 20: .WordWrap = False

.Caption = "Это чекбокс номер " & i & " на вкладке " & mn

End With

.MPindex = m: .Index = i: .MPname = mn

End With

coll.Add MyCheckBox

Next i

Next m

End Sub


Вложение

Размер

Загрузки

Последняя загрузка

CheckBox_Class.xls

47.5 КБ

27

1 год 4 недели назад

  • 8268 просмотров
Прикрепленные файлы:
Так же в этом разделе:
 
MyTetra Share v.0.52
Яндекс индекс цитирования