
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 em qualquer célula atualmente selecionada em uma planilha.
Se você executar o código novamente, ele inserirá um segundo botão exatamente em cima do primeiro.
Ele também define o tamanho dos botões de opção de acordo com o tamanho da célula selecionada.
O que preciso fazer é indicar no código a célula onde desejo que o novo botão de opção seja inserido, F15, e definir o tamanho exato do botão e a posição esquerda/direita e para cima/para baixo.
Isso ocorre para que o botão Opção seja sempre inserido na mesma célula, na mesma posição e sempre com o mesmo tamanho.
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
Responder1
Em geral, você deseja evitar o uso de seleções no código
Você pode atribuir o intervalo a uma variável e colocar o botão nela:
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
Para o qual você pode ligar de qualquer lugar em Sub
:
Call AddOptionButton(Range("F15"))