Снова о Макрос 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 г, но мой уровень английского не позволил сразу найти ответ.


Ответы (1 шт):

Автор решения: rotabor

Доступ к объектам на рабочем листе осуществляется через коллекцию Shapes:

  1. Для Form Controls:
ActiveSeet.Shapes("CheckBox" & i).DrawingObject
  1. Для ActiveX Controls:
ActiveSeet.Shapes("CheckBox" & i).DrawingObject.Object

Определить тип чекбокса можно по внешнему виду, поведению или по значению Shape.Type: ActiveSeet.Shapes("CheckBox" & i).Type

  1. msoFormControl - это чекбокс типа Form Control.
  2. msoOLEControlObject - это чекбокс типа ActiveX Control.
→ Ссылка