Grafikbuttons in Excel mit FaceId über Inputbox erstellen
Schritt-für-Schritt-Anleitung
Um einen CommandButton in Excel mit einer Grafik per FaceId über eine Inputbox zu versehen, kannst du den folgenden VBA-Code verwenden. Dieser Code ermöglicht es dir, die FaceId über eine Eingabeaufforderung zu ändern, ohne den Code selbst anpassen zu müssen.
-
Öffne dein Excel-Dokument und wechsle in den VBA-Editor (drücke ALT + F11
).
-
Füge einen CommandButton in dein Arbeitsblatt ein.
-
Doppelklicke auf den CommandButton, um das Codefenster zu öffnen.
-
Kopiere und füge den folgenden Code ein:
Private Sub CommandButton1_Click()
Dim lng_id As Long
lng_id = InputBox("Gib die FaceId ein:")
Set CommandButton1.Picture = Application.CommandBars.FindControl(ID:=lng_id).Picture
CommandButton1.PicturePosition = fmPicturePositionLeftCenter 'Bild links vom Text
End Sub
-
Schließe den VBA-Editor und teste das Makro, indem du auf den Button klickst.
Häufige Fehler und Lösungen
-
Fehler 5: Ungültige Prozedur oder ungültiges Argument
Wenn du beim Ausführen des Codes auf diesen Fehler stößt, stelle sicher, dass du die Zeile Set objCommandBar = Application.CommandBars.Add(Name:="Temp", Temporary:=True)
korrekt angegeben hast.
-
FaceId nicht gefunden
Wenn die eingegebene FaceId nicht existiert, wird kein Bild angezeigt. Achte darauf, dass die eingegebene ID gültig ist und dass du die FaceId-Liste in Excel kennst.
Alternative Methoden
Eine weitere Möglichkeit, Icons in Excel zu verwenden, ist die Verwendung von Shape-Objekten. Du kannst Shapes direkt in dein Arbeitsblatt einfügen und diesen Shapes ein Bild zuweisen, indem du die Fill.UserPicture
-Methode anwendest. Hier ein Beispiel:
Sub AddShapeWithPicture()
Dim shp As Shape
Set shp = ActiveSheet.Shapes.AddShape(msoShapeRectangle, 100, 100, 100, 100)
shp.Fill.UserPicture "C:\Pfad\zu\deinem\Bild.jpg"
End Sub
Praktische Beispiele
Ein nützliches Beispiel für die Verwendung von FaceIds ist die Erstellung einer Liste von verfügbaren FaceIds. Du kannst den folgenden Code verwenden, um alle Icons mit ihren IDs aufzulisten:
Sub ListFaceIds()
Dim i As Long
For i = 1 To 26000
On Error Resume Next
Debug.Print i, Application.CommandBars.FindControl(ID:=i).Caption
Next i
End Sub
Tipps für Profis
- Nutze die
CommandBars
-Funktion, um die verfügbaren FaceIds zu durchforsten. Diese Funktion hilft dir, die richtigen IDs für deine Buttons zu finden.
- Halte deine Excel-Version im Auge. Neuere Versionen unterstützen möglicherweise mehr FaceIds. In Excel 2010 stehen etwa 15.000 Icons zur Verfügung.
- Wenn du mehrere Buttons hast, kannst du den Code modularisieren, um die Wartung zu erleichtern.
FAQ: Häufige Fragen
1. Wie viele FaceIds kann ich in Excel verwenden?
In Excel 2010 und neuer Versionen sind rund 15.000 FaceIds verfügbar, jedoch sind viele davon leer oder doppelt.
2. Was kann ich tun, wenn mein Button kein Bild zeigt?
Stelle sicher, dass die eingegebene FaceId korrekt ist und dass es sich um eine gültige ID handelt. Überprüfe auch, ob die CommandBars
-Funktion funktioniert.
3. Wie kann ich die Icons speichern?
Du kannst die Icons über VBA exportieren, indem du die stdole.SavePicture
-Methode verwendest, um sie in einem gewünschten Format zu speichern.
4. Funktioniert dieser Code in Excel für Mac?
Die Verwendung von CommandBars
ist in Excel für Mac nicht vollständig unterstützt. Daher solltest du alternative Methoden für die Bildverwaltung in Betracht ziehen.