
Есть ли способ точно позиционировать и задать размер новой кнопки выбора в VBA или макросе?
Код, который я использую, вставляет новую кнопку «Option» в любую ячейку, выбранную в данный момент на рабочем листе.
Если затем снова запустить код, он вставит вторую кнопку точно поверх первой.
Он также устанавливает размер кнопок выбора в соответствии с размером выбранной ячейки.
Мне нужно указать в коде ячейку, куда я хочу вставить новую кнопку выбора (F15), и задать точный размер кнопки, а также ее положение слева/справа и сверху/снизу.
Это делается для того, чтобы кнопка «Option» всегда вставлялась в одну и ту же ячейку, в одно и то же место и имела одинаковый размер.
Можно ли это сделать?
Код для создания/вставки новой кнопки выбора:
Sub AddOptionButton()
With ActiveSheet.OptionButtons.Add(Selection.Left, Selection.Top,
Selection.Width, Selection.Height)
.Name = "NewOptionButton"
.Caption = "Green"
End With
End Sub
решение1
В общем случае следует избегать использования выделений в коде.
Вы можете присвоить диапазон переменной и поместить в нее кнопку:
Sub AddOptionButton()
Dim myRange as Range
Set myRange = Range("C3")
With ActiveSheet.OptionButtons.Add(myRange.Left, myRange.Top, myRange.Width, myRange.Height)
.Name = "NewOptionButton"
.Caption = "Green"
End With
End Sub
Но, возможно, лучше передать диапазон в функцию:
Function AddOptionButton(myRange as Range)
With ActiveSheet.OptionButtons.Add(myRange.Left, myRange.Top, myRange.Width, myRange.Height)
.Name = "NewOptionButton"
.Caption = "Green"
End With
End Function
По которому вы можете позвонить из любой точки вашего города Sub
:
Call AddOptionButton(Range("F15"))