Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Buttons.Add

Forumthread: Buttons.Add

Buttons.Add
11.02.2005 11:43:17
Rainer
Hallo Zusammen.
Ich hätte mal eine Frage. Warum läuft folgendes Macro nicht. Fehlermeldung "Argument ist nicht optional"

Sub button ()
ActiveSheet.Buttons.Add
ActiveSheet.Buttons.Caption = "Button"
End Sub

Auch in meinen Objektkatalog finde ich das Objekt "Buttons" nicht. Liegt dies mglw. an meiner Excel Version? Wenn ja, gibt es eine andere Möglichkeit oben genanntes Makro umzusetzen (insb. Caption-Eigenschaft). Wäre sehr dankbar, wenn mir jemand weiterhelfen könnte.
Gruß Rainer
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Buttons.Add
Udo
Parameter für Größe und Position fehlen:
ActiveSheet.Buttons.Add(100,100,100,100)
Udo
AW: Buttons.Add
Rainer
Hallo Udo,
danke aber:
ActiveSheet.Buttons.Add(100,100,100,100)
funktioniert so auch nicht. Findest Du das Objekt Buttons in deinem Objektkatalog?
AW: Buttons.Add
K.Rola
Hallo,
Buttons ist ein Begriff aus Excel 95 Zeiten(und davor). Diese Sprachelemente sind im
Objektkatalog ausgeblendet.
Mal ein Beispiel:
Option Explicit
Sub In_Schleife()
Dim FormularControl As Object, Z As Long, W#, H#, L#, T#
W = 72: H = 21: L = 1: T = 1
For Z = 1 To 5
Set FormularControl = ActiveSheet.Buttons.Add(L, T, W, H)
With FormularControl
.Name = "F_Control " & Z
.Characters.Text = "Testbutton"
.Enabled = True
.LockedText = False
.OnAction = "Dein_Makro"
.Placement = xlFreeFloating
.PrintObject = False
With .Font
.Name = "Arial"
.FontStyle = "Fett"
.Size = 10
.ColorIndex = 5
.Strikethrough = False
.Superscript = False
.Subscript = False
.Underline = xlUnderlineStyleNone
End With
End With
L = L + W
Next
Set FormularControl = Nothing
End Sub

Gruß K.Rola
Anzeige
;
Anzeige

Infobox / Tutorial

Buttons in Excel VBA hinzufügen und anpassen


Schritt-für-Schritt-Anleitung

Um in Excel VBA einen Button hinzuzufügen, kannst Du die Methode ActiveSheet.Buttons.Add verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung:

  1. Öffne den Visual Basic for Applications (VBA) Editor, indem Du ALT + F11 drückst.
  2. Erstelle ein neues Modul über Einfügen > Modul.
  3. Füge den folgenden Code ein:
Sub ButtonHinzufuegen()
    Dim Button As Object
    ' Füge einen Button hinzu (X, Y, Breite, Höhe)
    Set Button = ActiveSheet.Buttons.Add(100, 100, 100, 30)
    ' Setze die Beschriftung des Buttons
    Button.Caption = "Klick mich!"
    ' Weise eine Aktion zu
    Button.OnAction = "DeinMakro"
End Sub
  1. Ersetze "DeinMakro" mit dem Namen des Makros, das beim Klicken auf den Button ausgeführt werden soll.
  2. Starte das Makro, um den Button auf dem aktiven Arbeitsblatt zu erstellen.

Häufige Fehler und Lösungen

Ein häufiges Problem ist die Fehlermeldung "Argument ist nicht optional". Dies tritt auf, wenn Du nicht die erforderlichen Parameter für ActiveSheet.Buttons.Add angibst. Achte darauf, dass Du die Position und Größe des Buttons angibst:

ActiveSheet.Buttons.Add(100, 100, 100, 30)

Wenn Du das Objekt Buttons nicht im Objektkatalog findest, könnte dies an Deiner Excel-Version liegen. In neueren Versionen sind diese Elemente möglicherweise ausgeblendet.


Alternative Methoden

Wenn Du mit ActiveSheet.Buttons.Add nicht arbeiten kannst, gibt es auch andere Möglichkeiten, Buttons in Excel zu erstellen:

  • Verwende Shapes.AddFormControl:
Sub ButtonHinzufuegenMitShape()
    Dim ShapeButton As Shape
    Set ShapeButton = ActiveSheet.Shapes.AddFormControl(xlButtonControl, 100, 100, 100, 30)
    ShapeButton.TextFrame.Characters.Text = "Klick mich!"
    ShapeButton.OnAction = "DeinMakro"
End Sub

Diese Methode ist besonders nützlich, wenn Du mehr Kontrolle über das Design des Buttons benötigst.


Praktische Beispiele

Hier ist ein weiteres Beispiel, das mehrere Buttons in einer Schleife hinzufügt:

Sub MehrereButtonsHinzufuegen()
    Dim Button As Object
    Dim i As Integer
    For i = 1 To 3
        Set Button = ActiveSheet.Buttons.Add(100, 100 + (i - 1) * 40, 100, 30)
        Button.Caption = "Button " & i
        Button.OnAction = "DeinMakro"
    Next i
End Sub

In diesem Beispiel werden drei Buttons untereinander erstellt und jedem wird die gleiche Aktion zugewiesen.


Tipps für Profis

  • Nutze die With-Anweisung, um den Code übersichtlicher zu gestalten.
  • Experimentiere mit den Eigenschaften des Buttons, um das Erscheinungsbild anzupassen, z.B. Schriftart, Farbe und Größe.
  • Überlege, ob Du anstelle von Formularsteuerelementen ActiveX-Steuerelemente verwenden möchtest, die mehr Funktionalität bieten.

FAQ: Häufige Fragen

1. Warum funktioniert mein Makro nicht, wenn ich ActiveSheet.Buttons.Add verwende?
Stelle sicher, dass Du alle erforderlichen Parameter wie Position und Größe angibst. Prüfe auch, ob das Objekt Buttons in Deiner Excel-Version verfügbar ist.

2. Wie kann ich die Schriftart eines Buttons ändern?
Du kannst die Schriftart mit den Eigenschaften des Buttons anpassen, z.B.:

With Button.Font
    .Name = "Arial"
    .Size = 12
    .Bold = True
End With

3. Gibt es eine maximale Anzahl von Buttons, die ich hinzufügen kann?
Es gibt keine feste Grenze, aber die Leistung kann beeinträchtigt werden, wenn Du zu viele Buttons auf einem Arbeitsblatt hast.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige