Сообщение 2 не работает, потому что ckBox
не является допустимым объектом в этом Sub.
Посмотрите, как флажок объявлен и инициирован как объект в fActCheckbox
:
Dim ckBox As CheckBox
Set ckBox = ActiveSheet.CheckBoxes(Application.Caller)
fActCheckbox
стоит сам по себе - обратной ссылки на fColonOnOff
нет; Call
не имеет того эффекта, о котором вы думаете. Все, что он делает, это выполняет другую процедуру.
Если бы вы превратили fActCheckbox
в Publi c Функция , тогда что-то было бы возможно. Например
Sub Test
MsgBox "2 " & fActCheckBox
End Sub
Public Function fActCheckBox() As String
Dim ckName as String
Dim ckBox As CheckBox
Set ckBox = ActiveSheet.CheckBoxes(Application.Caller)
ckName = ckBox.Name
MsgBox "1) " & ckName
fActCheckBox = ckName
End Function