Я за помощью. Не откажите :)
На форме более 20 CheckBox. Порядок (ТabIndex) установлен.
Пытаюсь перебрать в цикле - если установлена "галочка", в массив занести Caption:
j = 1
For Each x In Me.Controls
If TypeOf x Is MSForms.CheckBox Then
If x.Value Then
ArrHeader(1, j) = x.Caption
j = j + 1
End If
End If
Next x
Массив формируется, потом выгружается на лист.
Проблема: в цикле CheckBox перебираются, но как? На лист надписи выгружаются не по порядку ТabIndex. Обнаружить алгоритм не удалось: не по ТabIndex, не по именам, не по алфавиту Caption, не по расположению на Frame'ах...
Возможно, порядок создания CheckBox на форме (не знаю этого порядка, создавал не я)? Но они же переименованы и теперь имеют свои имена, а не CheckBox1, CheckBox2...
Что еще может служить указателем для последовательности перебора в массиве?
Если прямого ответа нет, буду рисовать новую форму для экспериментов.
На форме более 20 CheckBox. Порядок (ТabIndex) установлен.
Пытаюсь перебрать в цикле - если установлена "галочка", в массив занести Caption:
j = 1
For Each x In Me.Controls
If TypeOf x Is MSForms.CheckBox Then
If x.Value Then
ArrHeader(1, j) = x.Caption
j = j + 1
End If
End If
Next x
Массив формируется, потом выгружается на лист.
Проблема: в цикле CheckBox перебираются, но как? На лист надписи выгружаются не по порядку ТabIndex. Обнаружить алгоритм не удалось: не по ТabIndex, не по именам, не по алфавиту Caption, не по расположению на Frame'ах...
Возможно, порядок создания CheckBox на форме (не знаю этого порядка, создавал не я)? Но они же переименованы и теперь имеют свои имена, а не CheckBox1, CheckBox2...
Что еще может служить указателем для последовательности перебора в массиве?
Если прямого ответа нет, буду рисовать новую форму для экспериментов.