Anzeige
Archiv - Navigation
1028to1032
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
Inhaltsverzeichnis

OLEObject mit Bild

OLEObject mit Bild
30.11.2008 17:27:00
Sonnenpeter
Hallo,
ich versuch mit nachfolgendem Makro ein OLEObject mit Bild einzufügen.

Public Sub test()
Dim objButton As OLEObject
Set objButton = ActiveSheet.OLEObjects.Add(ClassType:= _
"Forms.CommandButton.1", Link:=False _
, DisplayAsIcon:=True, Left:=442.5, _
Top:=75, Width:=32, Height:=32)
ActiveSheet.OLEObjects("CommandButton2").Object.Picture = _
Application.CommandBars.GetImageMso("AccessFormDatasheet", 32, 32)
ActiveSheet.OLEObjects(i).Object.Caption = "Test"
End Sub


Leider gelingt es mir nicht.
Was mach ich falsch? Was ist zu tun?
Gruß SOnnenpeter

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: OLEObject mit Bild
30.11.2008 19:51:24
Nepumuk
Hallo Peter,
so:
Public Sub test()
    Dim objButton As OLEObject
    
    Set objButton = ActiveSheet.OLEObjects.Add(ClassType:= _
        "Forms.CommandButton.1", Left:=442.5, _
        Top:=75, Width:=32, Height:=32)
    
    objButton.Object.Picture = _
        Application.CommandBars.GetImageMso("AccessFormDatasheet", 32, 32)
    objButton.Object.Caption = "Test"
    
End Sub

Gruß
Nepumuk
Anzeige
AW: OLEObject mit Bild
30.11.2008 20:02:48
Sonnenpeter
Hallo Nepumuk,
recht herzlichen Dank, es klappt :-)))
Gruß Sonnenpeter
PS: gibt es auch die Möglichkeit ein "ImageMso" als Bild in ein Tabellenblatt einzufügen
AW: OLEObject mit Bild
30.11.2008 20:25:00
Nepumuk
Hallo Peter,
ja das geht. Dazu musst du einfach auf Grund des Picture-Handles das Bild in den Stack laden und das dann einfügen. Reicht das als Hinweis oder brauchst du ein Beispiel?
Gruß
Nepumuk
AW: OLEObject mit Bild
30.11.2008 21:10:00
Sonnenpeter
Hallo Nepumuk,
"Picture-Handles" "Stack" etc. nö damit komme ich nicht klar. :-)))
Trotzdem Danke!
Schönen Abend noch.
Sonnenpeter
AW: OLEObject mit Bild
30.11.2008 21:32:00
Nepumuk
Hallo Peter,
sag das doch gleich. Beispiel:
Option Explicit

Private Declare Function CopyImage Lib "user32.dll" ( _
    ByVal handle As Long, _
    ByVal imageType As Long, _
    ByVal newWidth As Long, _
    ByVal newHeight As Long, _
    ByVal lFlags As Long) As Long
Public Declare Function FindWindow Lib "user32.dll" Alias "FindWindowA" ( _
    ByVal lpClassName As String, _
    ByVal lpWindowName As String) As Long
Private Declare Function EmptyClipboard Lib "user32.dll" () As Long
Private Declare Function CloseClipboard Lib "user32.dll" () As Long
Private Declare Function OpenClipboard Lib "user32.dll" ( _
    ByVal hwnd As Long) As Long
Private Declare Function SetClipboardData Lib "user32.dll" ( _
    ByVal wFormat As Long, _
    ByVal hMem As Long) As Long

Private Const IMAGE_BITMAP = 0&
Private Const LR_COPYRETURNORG = &H4
Private Const CF_BITMAP = 2&
Private Const GC_CLASSNAMEMSEXCEL = "XLMAIN"

Public Sub Beispiel()
    Dim lngTempPicture As Long
    lngTempPicture = CopyImage(Application.CommandBars. _
        GetImageMso("AccessFormDatasheet", 32, 32), _
        IMAGE_BITMAP, 0, 0, LR_COPYRETURNORG)
    If lngTempPicture <> 0 Then
        OpenClipboard FindWindow(GC_CLASSNAMEMSEXCEL, Application.Caption)
        EmptyClipboard
        SetClipboardData CF_BITMAP, lngTempPicture
        CloseClipboard
        Tabelle1.Paste
    End If
End Sub

Gruß
Nepumuk
Anzeige
AW: OLEObject mit Bild
30.11.2008 23:34:07
Sonnenpeter
Danke Nepumuk!
Gruß Sonnenpeter

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige