Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
992to996
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
992to996
992to996
Aktuelles Verzeichnis
Verzeichnis Index
Verzeichnis Index
Übersicht Verzeichnisse
Inhaltsverzeichnis

Bildeigenschaften per VBA

Bildeigenschaften per VBA
21.07.2008 16:12:00
Boris
Hi,
ich füge mit folgendem Code Bilder in Excel ein. Bisher "manipuliere" ich nur die Größe. Ich würde nun gerne beim einfügen jedes Bild mit einem Rahmen der Dicke 0,5 versehen. Wie mache ich das?

Sub BilderEinfügen()
Dim objBild As Object
Set WS = ThisWorkbook.Worksheets("...")
Set objBild = WS.Pictures.Insert("...")
With objBild
.Top = WS.Range(WS.Range("...").Top
.Left = WS.Range(WS.Range("...").Left
.Height = .Width * 4
. 


Wie finde ich in Zukunft so etwas selber heraus? Wo und wie kann man die Objekteigenschaften nachschauen?
Viele Grüße
Boris

9
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Bildeigenschaften per VBA
21.07.2008 16:19:41
Ramses
Hallo
"...Wie finde ich in Zukunft so etwas selber heraus? ..."
Extras - Makro - Makrorekorder aufzeichnen
Anschliessend den Code anschauen, ... und das meiste kannst du so auslesen/lernen
Sub Macro3()
    '
    ' Macro3 Macro
    ' Macro recorded 21.07.2008 by Ramses
    '
    ActiveSheet.Shapes("Picture 3").Select
    Selection.ShapeRange.Fill.Visible = msoFalse
    Selection.ShapeRange.Fill.Solid
    Selection.ShapeRange.Fill.Transparency = 0#
    Selection.ShapeRange.Line.Weight = 0.75
    Selection.ShapeRange.Line.DashStyle = msoLineSolid
    Selection.ShapeRange.Line.Style = msoLineSingle
    Selection.ShapeRange.Line.Transparency = 0#
    Selection.ShapeRange.Line.Visible = msoTrue
    Selection.ShapeRange.Line.ForeColor.SchemeColor = 8
    Selection.ShapeRange.Line.BackColor.RGB = RGB(255, 255, 255)
    Range("E7").Select
End Sub

Gruss Raienr

Anzeige
AW: Bildeigenschaften per VBA
21.07.2008 16:54:00
Boris
Der Makrorekorder ist (zumeist) nur sehr eingeschränkt hilfreich. In diesem Fall fügt er Bilder als Shapes ein.
Mein objBild ist jedoch als Object definiert. Wende ich die obige Ausgabe des Makroeditors auf das Object an, klappt es leider nicht...
Gruß
Boris

AW: Bildeigenschaften per VBA
21.07.2008 17:02:34
Ramses
Hallo
"...Mein objBild ist jedoch als Object definiert..."
Dann solltest du deine Variablen mal richtig deklarieren.
Dann hast du nämlich nach der Set-Anweisung im "Ausdruck" Fenster alle Methoden die du auf das Object anwenden kannst.
Userbild
Gruss Rainer

Anzeige
AW: Bildeigenschaften per VBA
21.07.2008 17:22:00
Boris
Mir wurde von jemandem hier im Forum geraten, das Bild als Object zu definieren, den Namen habe ich leider vergessen. Dieser jemand schien Ahnung zu haben...
Ich würde ungern meinen kompletten Code ändern. Es muss doch eine Möglichkeit geben, den Rahmen auch bei einem Object zu setzen....?
Gruß Boris

AW: Bildeigenschaften per VBA
21.07.2008 18:35:00
Herbert
Hi,
der Tipp mit dem Lokalfenster von Ramses geht natürlich auch mit deinem Bild als Objekt.
Man sollte ein Objekt immer so genau wie möglich deklarieren, desto einfacher wird die weitere Behandlung.
mfg Herbert

AW: Bildeigenschaften per VBA
21.07.2008 22:18:00
Ramses
Hallo
"..Mir wurde von jemandem hier im Forum geraten..."
Tja, und nun ?
Soll ich dir einen VBA-Kurs Online Crash Kurs im programmieren geben ?
Ich habe dir gezeigt wie es richtig geht und wie du lernen kannst wo was einzustellen ist.
Mit dem "Object" geht es eben nicht, da dies ein allgemeines Object ist, wozu EXCEL keinen Object-Catalog anbieten kann.
"...Ich würde ungern meinen kompletten Code ändern..."
Musst du doch auch gar nicht. Die VBA-Hilfe ist besser als ihr Ruf

Sub BilderEinfügen()
    Dim objBild As Shape
    Dim wks As Worksheet
    Set wks = ThisWorkbook.Worksheets("Sheet2")
    'FileName Required String. The file from which the OLE object is to be created.
    'LinkToFile Required MsoTriState. The file to link to.
    'SaveWithDocument Required MsoTriState. To save the picture with the document.
    'Left Required Single. The position (in points) of the upper-left corner of the picture relative to the upper-left corner of the document.
    'Top Required Single. The position (in points) of the upper-left corner of the picture relative to the top of the document.
    'Width Required Single. The width of the picture, in points.
    'Height Required Single. The height of the picture, in points.
    Set objBild = wks.Shapes.AddPicture("C:\Pfad\Ordner\xyz.jpg", False, True, 100, 100, 100, 100)
    With objBild
        '.Top = WS.Range(WS.Range("...").Top
        '.Left = WS.Range(WS.Range("...").Left
        '.Height = .Width * 4
        '. <<<----- HIER SOLL NUN DER CODE REIN
    End With
End Sub

Den Rest kriegst du dann im Einzelschrittmodus im Lokalfenster schon raus
Gruss Rainer

Anzeige
AW: Bildeigenschaften per VBA
22.07.2008 10:42:00
Boris
Hallo,
zunächst einmal: Problem gelöst. Sehr schön!
"Soll ich dir einen VBA-Kurs Online Crash Kurs im programmieren geben ?"
Ja gerne:) Kleiner Scherz...
"Ich habe dir gezeigt wie es richtig geht und wie du lernen kannst wo was einzustellen ist."
Zu meiner Schande muss ich gestehen: ich kannte das Expression-Fenster nicht......
"Mit dem "Object" geht es eben nicht, da dies ein allgemeines Object ist, wozu EXCEL keinen Object-Catalog anbieten kann."
Das stimmt nicht, geht auch mit "Object"...
Mein (gekürzter) Code sieht jetzt so aus:

Sub BilderEinfügen()
Dim objBild As Object
Dim WS As Worksheet
Set WS = ThisWorkbook.Worksheets("xx")
For i = xx To xx
Set objBild = WS.Pictures.Insert(xx)
Ratio = objBild.Height / objBild.Width
With objBild
.Top = WS.Range(xx).Top
.Left = WS.Range(xx).Left
.Width = WS.Range(xx).Width
.Height = .Width * Ratio
.Name = ("Bild" & i)
.ShapeRange.Line.Visible = msoTrue
.ShapeRange.Line.Weight = 0.25
End With
Next i
Set objBild = Nothing
End Sub


War zwar etwas holprig, aber trotzdem vielen Dank. Welche Vor-/Nachteile welche Methode hat (Shape vs Object) ist mir allerdings unklar...
Viele Grüße
Boris

Anzeige
AW: Bildeigenschaften per VBA
22.07.2008 23:10:00
Ramses
Hallo
"...Das stimmt nicht, geht auch mit "Object"....."
Nein,... geht nicht weil EXCEL das "Object" nicht identifizieren kann und im Expression-Fenster dann nicht alle Optionen anbietet/anzeigt.
Auch das Intellisense funktioniert nicht
"...Mein (gekürzter) Code sieht jetzt so aus:..."
Dann glaube ich das auch noch
Gruss Rainer

AW: Bildeigenschaften per VBA
23.07.2008 10:03:00
Boris
Hallo,
"Nein,... geht nicht weil EXCEL das "Object" nicht identifizieren kann und im Expression-Fenster dann nicht alle Optionen anbietet/anzeigt."
Scrolle ich per F8 durch den Code, zeigt das Epression-Fenster folgendes Bild an:
Userbild
Gruß
Boris
Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige