Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1092to1096
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

Bild vergrößern

Bild vergrößern
viwaldi
Hallo
ich habe einen schönen Code von Beverly gefunden, um ein Bild in mein Bild-Steuerelement zu laden.
Das Bild hat immer dieselbe Größe, da es mithilfe eines Diagramms, dessen Abmessungen festgesetzt sind, erstellt wurde.
Das effektive Bild darin kann aber sehr klein werden.
Meine Idee ist es das Bild so zu vergrößern und die Eigenschaft "PictureAligment" des Steuerelementes auf "BottomLeft einzustellen", so dass sich quasi der überflüssige Teil des Bildes ausserhalb befindet.
Für die Skalierung würde ich gern Zellbezüge nutzen, in denen ich die Faktoren berechne.
Der bisherige Code lautet:
Private Sub CommandButton1_Click()
Dim chDiagramm As ChartObject
Dim shBild As Picture
Application.ScreenUpdating = False
Set shBild = Worksheets("Skizzen").Pictures("Picture1")
shBild.CopyPicture Appearance:=xlScreen, Format:=xlPicture
Set chDiagramm = ActiveSheet.ChartObjects.Add(0, 0, shBild.Width, shBild.Height)
With chDiagramm.Chart
.Paste
.Export Filename:="C:\temp\Bild.jpg", FilterName:="JPG"
End With
If Not Me.Image1.Picture Is Nothing Then
Image1.Picture = Nothing
End If
Image1.Picture = LoadPicture("C:\temp\Bild.jpg")
DoEvents
chDiagramm.delete
Kill "C:\temp\Bild.jpg"
Set chDiagramm = Nothing
Set shBild = Nothing
Application.ScreenUpdating = True
End Sub
wohlgemerkt es geht hier um Excel 2007 und einen unerfahrenen Nutzer ;-)
MfG viwaldi

5
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Bild vergrößern
04.08.2009 18:34:57
Beverly
Hi,
das Bildsteuerelement hat doch die Eigenschaft PictureSizeMode - stelle sie auf fmPictureSizeModeStretch, dann wird das Bild auf die entsprechende Größe gebracht.


AW: Bild vergrößern
05.08.2009 09:16:49
viwaldi
Hi,
Habe mich wahrscheinlich etwas ungenau ausgedrückt.
Es wird eine Skizze mit einem Diagramm erstellt dessen Achsen auf die größtmögliche Skizzengröße festgesetzt wurden.
Da es anscheinend in Excel 2007 nicht mehr möglich ist, beide Achsen mit gleicher Skalierung zu verwenden, müssen die Achsen auch festgesetzt bleiben.
Die Skizze darf nicht verzerrt sein!
Ich lasse die Skizze zeichnen und speichere diese als Bild ab bevor ich sie ins Bildsteuerelement lade.
Wegen der festgesetzten Achsen bleiben die Außenabmessungen des Bildes immer dieselben, wobei die effektive Skizzengröße darin stark variiert.
z.B.: eine Diagrammgröße von 20x30cm: Fall a) Skizzengröße 20x30cm; Fall b) Skizzengröße 5x5cm
Beide Skizzen sollten aber beim Ausdruck etwa die gleiche Größe aufweisen
Das Bildsteuerelement hat ebenfalls eine festgesetzte Größe.
Da die Skizzengröße immer variabel ist, wollte ich einen Skalierungsfaktor in einer Zelle berechnen lassen
und diesen im Code berücksichtigen.
Ich habe schon versucht mit dem Makrorekorder das Zuzuschneiden des Bildes aufzuzeichnen, allerdings ohne Erfolg.
-Denn wenn ich das Bild vorher automatisch zuschneiden könnte, würde mir auch die Eigenschaft des Bildsteuerelementes "fmPictureSizeModeStretch" auch etwas nützen.
Ich brauche also einen Code, mit dem ich-
-enweder das Bild zuschneiden kann
-oder das Bild vergrößern kann, so dass der überflüssige Teil des Bildes sich quasi ausserhalb des Bildsteuerelementes befindet.
Was die Diagramm- und Bildbearbeitung anbetrifft, hat Office 2007 anscheinend so einige Defizite gegenüber Office 2003, soweit ich das bisher recherchieren konnte.
Wäre erfreut über Anregungen und Hilfestellungen
MfG viwaldi
Anzeige
AW: Bild vergrößern
05.08.2009 09:39:46
viwaldi
Hi, die gleiche Antwort nochmal, habe aber auf die "Frage noch offen" gestellt
Habe mich wahrscheinlich etwas ungenau ausgedrückt.
Es wird eine Skizze mit einem Diagramm erstellt dessen Achsen auf die größtmögliche Skizzengröße festgesetzt wurden.
Da es anscheinend in Excel 2007 nicht mehr möglich ist, beide Achsen mit gleicher Skalierung zu verwenden, müssen die Achsen auch festgesetzt bleiben.
Die Skizze darf nicht verzerrt sein!
Ich lasse die Skizze zeichnen und speichere diese als Bild ab bevor ich sie ins Bildsteuerelement lade.
Wegen der festgesetzten Achsen bleiben die Außenabmessungen des Bildes immer dieselben, wobei die effektive Skizzengröße darin stark variiert.
z.B.: eine Diagrammgröße von 20x30cm: Fall a) Skizzengröße 20x30cm; Fall b) Skizzengröße 5x5cm
Beide Skizzen sollten aber beim Ausdruck etwa die gleiche Größe aufweisen
Das Bildsteuerelement hat ebenfalls eine festgesetzte Größe.
Da die Skizzengröße immer variabel ist, wollte ich einen Skalierungsfaktor in einer Zelle berechnen lassen
und diesen im Code berücksichtigen.
Ich habe schon versucht mit dem Makrorekorder das Zuzuschneiden des Bildes aufzuzeichnen, allerdings ohne Erfolg.
-Denn wenn ich das Bild vorher automatisch zuschneiden könnte, würde mir auch die Eigenschaft des Bildsteuerelementes "fmPictureSizeModeStretch" auch etwas nützen.
Ich brauche also einen Code, mit dem ich-
-enweder das Bild zuschneiden kann
-oder das Bild vergrößern kann, so dass der überflüssige Teil des Bildes sich quasi ausserhalb des Bildsteuerelementes befindet.
Was die Diagramm- und Bildbearbeitung anbetrifft, hat Office 2007 anscheinend so einige Defizite gegenüber Office 2003, soweit ich das bisher recherchieren konnte.
Wäre erfreut über Anregungen und Hilfestellungen
MfG viwaldi
Anzeige
AW: Bild vergrößern
05.08.2009 10:47:48
Beverly
Hi,
du kannst das Bild bereits vor dem Exportieren zuschneiden. Dasgeht prinzipiell mit dieser Codezeile:
    shBild.ShapeRange.PictureFormat.CropRight = shBild.Height / Range("A1")

In der VBA-Hilfe findest du einiges dazu, wenn du nach dem Stichwort CropRight suchst.
Die Defizite bei der Aufzeichnung von Codes für die Programmierung von Shapes im Tabellenblatt unter Excel2007 sind mit der Version Excel2010 wieder korrigiert - falls es dich tröstet.


Anzeige
AW: Bild vergrößern
05.08.2009 11:30:19
viwaldi
Hallo Beverly,
und schon wieder hast du mir den Arsch gerettet.
Da bei mir mal die Höhe, mal die Breite maßgebend wird, verwende ich nun die Befehle "CropTop" und "CropRight", und das klappt super.
Besten Dank
MfG viwaldi

Links zu Excel-Dialogen

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige