
Gibt es eine Möglichkeit, ein neues Optionsfeld in VBA oder einem Makro exakt zu positionieren und seine Größe festzulegen?
Der von mir verwendete Code fügt in der aktuell in einem Arbeitsblatt ausgewählten Zelle eine neue Optionsschaltfläche ein.
Wenn Sie den Code dann erneut ausführen, fügt er eine zweite Schaltfläche genau über der ersten ein.
Außerdem wird die Größe der Optionsschaltflächen auf die Größe der ausgewählten Zelle festgelegt.
Ich muss in der Lage sein, im Code die Zelle anzugeben, in die die neue Optionsschaltfläche eingefügt werden soll (F15), und die genaue Größe der Schaltfläche sowie die Position links/rechts und oben/unten festzulegen.
Dadurch wird sichergestellt, dass das Optionsfeld immer in die gleiche Zelle, an der gleichen Position und in der gleichen Größe eingefügt wird.
Ist das möglich?
Der Code zum Erstellen/Einfügen des neuen Optionsfelds lautet:
Sub AddOptionButton()
With ActiveSheet.OptionButtons.Add(Selection.Left, Selection.Top,
Selection.Width, Selection.Height)
.Name = "NewOptionButton"
.Caption = "Green"
End With
End Sub
Antwort1
Im Allgemeinen sollten Sie die Verwendung von Auswahlmöglichkeiten im Code vermeiden
Sie können den Bereich einer Variablen zuweisen und die Schaltfläche darin platzieren:
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
Es könnte jedoch besser sein, den Bereich an eine Funktion zu übergeben:
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
Die Sie von überall in Ihrem Land aus anrufen können Sub
:
Call AddOptionButton(Range("F15"))