Exatamente posicionar novo botão de opção no VBA

0

Existe uma maneira de posicionar e dimensionar exatamente um novo botão de opção no VBA ou em uma macro?

O código que estou usando insere um novo botão de opção no qual a célula já está selecionada no momento em uma planilha.

Se você executar o código novamente, ele inserirá um segundo botão exatamente na parte superior do primeiro.

Também define o tamanho dos botões de opção para o tamanho da célula selecionada.

O que eu preciso ser capaz de fazer é declarar dentro do código a célula onde eu quero inserir o novo botão de opção, F15, e definir o tamanho exato do botão e o botão esquerdo / direito & posição para cima / para baixo.

Isso é feito para que o botão Opção esteja sempre inserido na mesma célula, na mesma posição e com o mesmo tamanho todas as vezes.

Isso pode ser feito?

O código para criar / inserir o novo botão de opção é:

Sub AddOptionButton()
    With ActiveSheet.OptionButtons.Add(Selection.Left, Selection.Top, 
Selection.Width, Selection.Height)
        .Name = "NewOptionButton"
        .Caption = "Green"
    End With
End Sub
    
por Kenny 10.10.2018 / 22:46

1 resposta

0

Em geral, você deseja evitar usar seleções no código

Você pode atribuir o intervalo a uma variável e colocar o botão:

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

Mas talvez seja melhor passar o intervalo para uma função:

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

Que você pode chamar de qualquer lugar no seu Sub :

Call AddOptionButton(Range("F15"))
    
por 10.10.2018 / 23:03