Microsoft Excel

Herbers Excel/VBA-Archiv

Informationen und Beispiele zum Thema MsgBox
BildScreenshot zu MsgBox MsgBox-Seite mit Beispielarbeitsmappe aufrufen
Informationen und Beispiele zum Thema Image
BildScreenshot zu Image Image-Seite mit Beispielarbeitsmappe aufrufen

Bildchen in Menüleiste einbauen



Excel-Version: 10.0 (Office XP)

Betrifft: Bildchen in Menüleiste einbauen
von: Gernot
Geschrieben am: 05.06.2002 - 08:55:06

Einen schönen guten Morgen!

Ich habe ein kleines Problem:
Ich habe mir per VBA Code eine eigene Menüleiste generiert. Jetzt hätte ich gerne links neben dem Text der Menüs (im geöffneten Zustand) eine Grafik mit eingebunden. Wie ich das mit einer Microsoft Grafik mache, weiß ich. Leider habe ich keine Ahnung, wie ich das mit meinen selbst gemalten Grafiken machen kann?!

Wenn mir hier jemand helfen könnte, wäre das echt super!

Falls das Problem noch nicht gut genug beschrieben ist, bitte sagen!

Vielen Dank!

Gruß Gernot

  

Re: Bildchen in Menüleiste einbauen
von: Michael Scheffler
Geschrieben am: 05.06.2002 - 09:54:52

Hallo,

das Problem kenne ich - 2 Wege.

1. Du hast irgenwo Deine Grafik in einem Image etc. in Deiner Excel-Dateizwischengespeichert. Dann mit den Methoden Copy/Paste.

2. Eleganter: Du musst es mit einem API-Aufruf machen. Damit schiebst Du Deine Grafik in die Zwischenablage und von da auf Deinen Button in der Menüleiste.


Sub SetMenuIcon(strMenuname As String)
Dim hBitmap As Long
Dim ct As CommandBarButton
    hBitmap = LoadImage(0&, ActiveWorkbook.Path & "\test.bmp", IMAGE_BITMAP, 16, 16, LR_LOADFROMFILE)
    If hBitmap = 0 Then
        MsgBox "There was an error while loading icon bitmap rep.bmp"
        Exit Sub
    End If
    'open the clipboard
    OpenClipboard 0&
    'Clear the clipboard
    EmptyClipboard
    'Put our bitmap onto the clipboard
    SetClipboardData CF_BITMAP, hBitmap
    'Check if there's a bitmap on the clipboard
    If IsClipboardFormatAvailable(CF_BITMAP) = 0 Then
        MsgBox "There was an error while pasting the icon bitmap to the clipboard!"
    End If
    'Close the clipboard
    CloseClipboard
    Set ct = CommandBars("TestMenu").Controls(1)
    ct.PasteFace
    ct.style = msoButtonIcon
    Set ct = Nothing
End Sub

Gruß

Micha

  

Re: Bildchen in Menüleiste einbauen
von: Michael Scheffler
Geschrieben am: 05.06.2002 - 09:55:54

Achso:

Declare Function LoadImage Lib "USER32" Alias "LoadImageA" (ByVal _
hInst As Long, ByVal lpsz As String, ByVal dwImageType As Long, ByVal dwDesiredWidth As Long, ByVal dwDesiredHeight As Long, ByVal dwFlags As Long) As Long

Schau mal im API-Giude!

  

Ging so lala
von: Gernot
Geschrieben am: 05.06.2002 - 11:21:27

Hallo Micha!

Erst mal vielen Dank für Deine Hilfe!

Deine elegantere Lösung sieht zwar sehr hübsch aus, funktioniert bei mir aber nicht?! Ich bekomme gemecker, dass er die von Dir verwendeten Clipboard Befehle nicht kennt?! Hier arbeite ich noch mit Office 97, vieleicht liegts daran. Werde das zuhause mal mit XP probieren. Hier mache ich jetzt die Variante mit Copy Paste....

Trotzdem nochmals vielen Dank!

Gruß Gernot


  

Re: Ging so lala
von: Michael Scheffler
Geschrieben am: 05.06.2002 - 11:38:02

Hallo Gernot,

Du musst Dir API-Befehle natürlich deklarieren, das liegt nicht an XP etc. Schau Dir dafür das Beispiel im API-Guide an. Das zeigt, wie man eine Grafik ins ClipBoard kriegt.

Und die anderen befehle (Paste etc.) gibts auch unter Excel97.

Gruß

Micha


  

Re: Ging so lala
von: Danke!
Geschrieben am: 05.06.2002 - 11:40:42

Hallo Micha,

mit diesen API Befehlen kenne ich mich bisher nicht wirklich aus.

Werde mir also mal den API Guide anschauen und dann mal sehen obs besser wird!

Alles klar!

Danke!

Gernot


 

Beiträge aus den Excel-Beispielen zum Thema "Bildchen in Menüleiste einbauen"