Точное расположение новой кнопки выбора в VBA

Точное расположение новой кнопки выбора в VBA

Есть ли способ точно позиционировать и задать размер новой кнопки выбора в 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"))

Связанный контент