Макрос CheckBox
Я уже обращался по поводу этого Макроса (Макрос Checkbox)-получил исчерпывающий ответ:
For i = 1 To 6
If Controls("CheckBox" & i) = False Then
MsgBox "TEST", vbOKOnly
End If
Next
Но мой Excel наотрез отказывается его запускать, VBA-редактор сообщает, что Controls not defined. Прошу помочь разобраться. Продолжая поиски ответа на свой вопрос, выяснил, что есть ответ, на этом же англоязычном сайте https://stackoverflow.com/a/57983985/27667238, данный еще в 2019 г, но мой уровень английского не позволил сразу найти ответ.
Доступ к объектам на рабочем листе осуществляется через коллекцию Shapes:
- Для Form Controls:
ActiveSeet.Shapes("CheckBox" & i).DrawingObject
- Для ActiveX Controls:
ActiveSeet.Shapes("CheckBox" & i).DrawingObject.Object
Определить тип чекбокса можно по внешнему виду, поведению или по значению Shape.Type: ActiveSeet.Shapes("CheckBox" & i).Type
- msoFormControl - это чекбокс типа Form Control.
- msoOLEControlObject - это чекбокс типа ActiveX Control.