Особенно в собравших "мусор" средах, это - кавычка, вероятно, что при фиксации ошибки OutOfMemory на высоком уровне приложения много материала вышло из объема и может быть исправлено, чтобы дать Вам назад память.
В случае единственных чрезмерных выделений, приложение может быть в состоянии продолжить работать безупречно. Конечно, если у Вас будет постепенная утечка памяти, Вы просто столкнетесь с проблемой снова (более вероятно раньше, чем позже), но это - все еще хорошая идея дать приложению шанс понизиться корректно, сохранить несохраненные изменения в случае приложения для GUI, и т.д.
Sub Add_CheckBoxes()
With ActiveSheet.CheckBoxes.Add(ActiveCell.Left, ActiveCell.Top, ActiveCell.Width, ActiveCell.Height)
.Interior.ColorIndex = xlNone
.Caption = ""
End With
For Each chk In ActiveSheet.CheckBoxes
If chk Then MsgBox "Checked"
Next
End Sub
После того, как вы добавите флажки, вы можете прокручивать их следующим образом:
Sub Checkbox_Test()
Dim chk As CheckBox
Dim cell As Range
For Each chk In ActiveSheet.CheckBoxes
If chk.Value = Checked Then '1 is true, but the constant
Set cell = chk.TopLeftCell ' "Checked" avoids "magic numbers".
'do whatever with cell
MsgBox cell.Address
End If
Next chk
End Sub