Как получить доступ к флажку из VBA в Excel 2007
при добавлении флажка, как получить доступ к значению из VBA?
- в Excel 2007 на ленте разработчика
- Вставить, Элементы Управления Формы Флажок
- переименован флажок в chkMyCheck
- добавлен макрос в флажок, теперь у меня есть Module1 с chkMyCheck_Clicked
все следующие ошибки
Sheets("Sheet1").chkMyCheck.Checked
Sheets("Sheet1").chkMyCheck.Value
Sheets("Sheet1").Shapes("chkMyCheck").Checked
Sheets("Sheet1").Shapes("chkMyCheck").Value
Sheet1.chkMyCheck.Checked
Sheet1.chkMyCheck.Value
Лист1.Фигуры ("chkMyCheck") появляется, чтобы найти объект, но не предоставляет никаких свойств это похоже на возвращение проверенного состояния.
3 ответов
одним из способов:
Dim oCheck As Object
Set oCheck = Sheet1.CheckBoxes("chkMyCheck")
MsgBox (oCheck.Value = xlOn)
Edit: вот еще один метод-возможно, этот будет работать для вас...
Sub Tester2()
Dim sh As Shape
For Each sh In Sheet1.Shapes
If sh.Type = msoFormControl Then
If sh.FormControlType = xlCheckBox Then
Debug.Print sh.Name & "=" & sh.ControlFormat.Value
End If
End If
Next sh
End Sub
для полноты, если вы используете флажок ActiveX вместо обычного флажка, синтаксис
If Sheet1.Shapes("chkMyCheck").OLEFormat.Object.Object.Value Then
...
найдено с помощью окна Locals и переменной, установленной в форму -
Dim shp as Shape
Set shp = Sheet1.Shapes("chkMyCheck")
Stop