Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
800to804
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
800to804
800to804
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

CommandBarButton mit Bild aus ImageList

CommandBarButton mit Bild aus ImageList
18.09.2006 18:09:52
Stefan
Hallo,
Ist es möglich einem CommandBarButton ein Bild aus einer vorhandenen ImageList zuzuweisen? Die ImageList liegt auf dem Formular "UserForm1".
Der Code:
Dim objImageList As MSComctlLib.ImageList
Set objImageList = UserForm1.ctlImageList.Object
cBut.Picture = objImageList.ListImages.Item(1).Picture
funktioniert leider nicht.
Hat jemand eine Lösungsmöglichkeit?

20
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: CommandBarButton mit Bild aus ImageList
18.09.2006 18:15:44
Egon
hi
Public

Sub NewPictureOnNewCommandBar()
' Zweck: Fügt ein Bild einer Schaltfläche der Befehlsleiste hinzu.
Dim objCommandBar As Office.CommandBar
Dim objCommandBarButton As Office.CommandBarButton
Dim objPicture As stdole.IPictureDisp
' Die nächste Codezeile auskommentieren, wenn Sie kein transparentes Bild einfügen möchten.
Dim objMask As stdole.IPictureDisp
Const PICTURE_PATH As String = "C:\Eigene Bilder\OK.bmp"
' Die nächste Codezeile auskommentieren, wenn Sie kein transparentes Bild einfügen möchten.
Const PICTURE_MASK As String = "C:\Eigene Bilder\OKMask.bmp"
Const COMMAND_BAR_NAME As String = "Befehlsleiste testen"
' Die nächste Zeile ersetzen durch:
' For Each objCommandBar In Application.ActiveExplorer.CommandBars <- Für Outlook
' For Each objCommandBar In Application.VBE.CommandBars <- Für Visual Basic-Editor
For Each objCommandBar In Application.CommandBars
If objCommandBar.Name = COMMAND_BAR_NAME Then
objCommandBar.Delete
End If
Next objCommandBar
Set objCommandBar = Application.CommandBars.Add(COMMAND_BAR_NAME)
Set objCommandBarButton = _
objCommandBar.Controls.Add(msoControlButton)
Set objPicture = LoadPicture(PICTURE_PATH)
' Die nächste Codezeile auskommentieren, wenn Sie kein transparentes Bild einfügen möchten.
Set objMask = LoadPicture(PICTURE_MASK)
objCommandBarButton.Picture = objPicture
' Die nächste Codezeile auskommentieren, wenn Sie kein transparentes Bild einfügen möchten.
objCommandBarButton.Mask = objMask
End Sub

Anzeige
AW: CommandBarButton mit Bild aus ImageList
18.09.2006 18:37:07
Stefan
Hallo,
danke für die Antwort. Das Codebeispiel lädt das Bild für den Button aus einer externen Bilddatei. Kann ich auch die vorhandenen Bilder eines ImageList-Steuerelements nutzen?
AW: CommandBarButton mit Bild aus ImageList
18.09.2006 19:17:00
{Boris}
Hi Stefan,
ungetestet:
cBut.Picture = objImageList.ListImages.Item(1).Picture
Lass mal die Item-Methode weg und sprich das Bild direkt über den Index von ListImages an:
cBut.Picture = objImageList.ListImages(1).Picture
Grüße Boris
AW: CommandBarButton mit Bild aus ImageList
18.09.2006 20:11:15
Stefan
Ok. Danke für den Input. Das Weglassen von Item führt auch nicht zum Erfolg.
Der folgende Code funktioniert astrein unter Access, unter Excel aber nicht:

Private Sub cmdSymbolleisteErstellen3_Click()
Dim cbr As Office.CommandBar
Dim cbc As Office.CommandBarButton
Dim objImageList As MSComctlLib.ImageList
Dim i As Integer
On Error Resume Next
CommandBars("Icons").Delete
On Error GoTo 0
Set cbr = CommandBars.Add("Icons")
cbr.Visible = True
Set cbc = cbr.Controls.Add(msoControlButton)
Set objImageList = Forms!frmPictures!ctlImageList.Object 'Access-Version
'Set objImageList = UserForm1.ctlImageList.Object 'Excel-Version
cbc.Picture = objImageList.ListImages.Item(1).Picture
cbc.Mask = objImageList.ListImages.Item(2).Picture
End Sub

Ist das ein Bug oder sind die CommandBar-Controls in Excel anders?
Anzeige
AW: CommandBarButton mit Bild aus ImageList
18.09.2006 20:29:01
K.Rola
Hallo,
Prinzip:

Private Sub UserForm_Initialize()
Toolbar1.ImageList = ImageList1
With Toolbar1
.Buttons.Add
.Buttons(1).Image = 1
End With
End Sub

Gruß K.Rola
AW: CommandBarButton mit Bild aus ImageList
18.09.2006 20:33:50
Stefan
CommandBars haben leider keine ImageList. (zumindest unter Excel)
AW: CommandBarButton mit Bild aus ImageList
18.09.2006 21:00:59
K.Rola
Hallo,
entschuldige, ich bin von einer Toolbar im Userform ausgegangen.
Für Commandbarbutton gibt es andere Möglichkeiten. Geht es dir darum,
benutzerdefinierte Icon zu verwenden oder was genau ist dein Anliegen?
Gruß K.Rola
AW: CommandBarButton mit Bild aus ImageList
18.09.2006 21:43:40
Stefan
Hallo K.Rola,
ja, ich habe eigene 16x16er Icons und möchte die auf die Commandbar packen, ohne .bmps/.jpgs einladen zu müssen.
Anzeige
AW: CommandBarButton mit Bild aus ImageList
18.09.2006 21:54:04
K.Rola
Hallo,
da gibt es z.B. die Möglichkeit, die Icons in einer angefügten Symbolleiste zu
bunkern oder in einer Tabelle zu platzieren und jeweils zu kopieren.
Falls du ein Beispiel brauchst, nochmal melden.
Gruß K.Rola
AW: CommandBarButton mit Bild aus ImageList
18.09.2006 22:23:42
Stefan
Das mit der angefügten Symbolleiste würde mich stark interessieren. Mit der Tabelle habe ich schon gemacht, aber da stimmt der Transparenz-Hintergrund irgendwie nicht. Muss man da auch mit .Mask arbeiten?
AW: CommandBarButton mit Bild aus ImageList
18.09.2006 22:47:01
K.Rola
Hallo,
Picture und Mask sind nicht abwärtskompatibel und erfordern, dass die Icons aus Dateien
geladen werden, was du ja gerade vermeiden wolltest.
Beispiel für das Kopieren aus einer angefügten Symbolleiste:
Option Explicit
Const MNAME As String = "Teste..."
''Das ist die angefügte Commandbar mit den den Icons
Const DUMMY As String = "Dummy_icons"

Sub Menu_make()
Dim cb As Object, cbb As Object, c As Byte
On Error Resume Next
CommandBars(MNAME).Delete
On Error GoTo 0
Set cb = CommandBars.Add(MNAME)
For c = 1 To 4
CommandBars(DUMMY).Controls(c).Copy cb
Next
With cb
.Enabled = True
.Visible = True
.Position = 4
End With
End Sub

Gruß K.Rola
Anzeige
AW: CommandBarButton mit Bild aus ImageList
18.09.2006 23:03:08
Stefan
Ok. Vielen Dank K.Rola. Finally müsste ich nur noch wissen,
wie man eine Symbolleiste an ein xls/xla Dokument anfügt.
Kann man die Symbolleiste einmalig mit loadpicture befüllen
und dann im Dokument versteckt abspeichern?
AW: CommandBarButton mit Bild aus ImageList
18.09.2006 23:03:02
EtoPHG
Hallo Stefan,
Mit der Tabelle habe ich schon gemacht, aber da stimmt der Transparenz-Hintergrund irgendwie nicht ...
Nachdem Du ein picture in die Tabelle kopiert hast, kannst Du mit Button Transparenz einstellen aus der Symbolleiste die Farbe anklicken, die Du für das Picture Transparent schalten willst.
Gruss Hansueli
Anzeige
AW: CommandBarButton mit Bild aus ImageList
18.09.2006 22:03:26
Kanter

Sub SymbolErzeugenUndZuweisen1()
picPath = "C:\Dokumente und Einstellungen\ubuser\Eigene Dateien\Eigene Bilder\"
Set myPic = stdole.StdFunctions.LoadPicture(picPath & "Sonne.jpg")
CustomizationContext = NormalTemplate
Dim Leiste As CommandBar, Knopf As CommandBarButton
Set Leiste = CommandBars.Add(Name:="Test")
Leiste.Visible = True
Set Knopf = Leiste.Controls.Add(Type:=msoControlButton)
With Knopf
.Caption = "Sonnenschein"
.Picture = myPic
End With
End Sub

AW: CommandBarButton mit Bild aus ImageList
18.09.2006 19:19:57
Kurt
Hi,
Commandbutton haben keine ImageList- Eigenschaft.
mfg Kurt
AW: CommandBarButton mit Bild aus ImageList
18.09.2006 22:56:41
EtoPHG
Hallo Stefan,
Folgendes kleine Beispiel als XLA (Add-in) installiert, macht folgendes
Auf dem Tabellenblatt des ADD-Ins (das der Benutzer nicht sieht) sind alle Definitionen:
Name der Toolbar, Button-Beschriftung, Picture (Icon) des Buttons, Makro das aufgerufen wird und ev. Parameter die den Schaltflächen-Makro übergeben werden.
Der Code (Auto_open) liest die Daten vom Tabellenblatt und baut Symbolleiste und Schaltflächen entsprechend auf:
https://www.herber.de/bbs/user/36777.xla
Um den Inhalt des Blattes sichtbar zu machen, Ändere bei installiertem Add-In DieseArbeitsmappe IsAddin von True auf False
Gruss Hansueli
Anzeige
AW: CommandBarButton mit Bild aus ImageList
18.09.2006 23:09:12
Stefan
Hallo Eto,
vielen Dank für das Addin. Funktioniert sehr gut,
nur haben die Icons einen schwarzen Hintergrund
und wirken etwas unscharf (durch den Hintergrund?).
AW: CommandBarButton mit Bild aus ImageList
18.09.2006 23:24:16
EtoPHG
Hallo Stefan,
Die Icons kannst'e ja nach Deinem Gusto ersetzen. Ich dachte es als Anregung und Beispiel wie man eigene Symbolleiste und Knöpfe erstellen kann und erhebe keinen Anspruch auf Schönheit.
K.Rola hat Dir ja schon gesagt, das Picture und Mask nicht abwärtskompatible sind. Ich arbeite mit W2K und Office 9.0.
Wenn Du Sie ersetzt, müssen die pics nur wieder den Namen bekommen, der in der Zelle steht, damit das Makro funktioniert.
Gruss Hansueli
Anzeige
AW: CommandBarButton mit Bild aus ImageList
18.09.2006 23:30:02
Stefan
Um einem Missverständnis vorzubeugen: das Addin ist top
und die Qualität der Originalicons auch, nur wenn diese
auf der Symbolleiste platziert werden, werden sie unscharf
und befinden sich in einem kleinen schwarzen Viereck.
Wahrscheinlich ist das bei Dir nicht so, dachte nur Du
hättest noch einen Tip diesbezüglich.
Trotzdem Danke!
AW: CommandBarButton mit Bild aus ImageList
19.09.2006 08:47:52
EtoPHG
Hallo Stefan,
Nein bezgl. des schwarzen Rahmens habe ich keinen Tip.
Der existiert bei mir nur, während des Anpassens, nicht aber nachher.
Auch das Verschwommen sein kann ich mir nicht erklären. Da ja am Bild nichts geändert werden sollte.
Gruss Hansueli
Anzeige

36 Forumthreads zu ähnlichen Themen

Anzeige
Anzeige

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige