Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Bild per VBA an Größe anpassen

Bild per VBA an Größe anpassen
amintire
Hallo alle zusammen,
würde gerne per VBA ein Bild anpassen lassen, das Bild sollte egal welche Pixel / Größe die haben,
genau in den Rahmen (siehe Beispiel) angepasst werden von der Größe, auch wenn sich das Bild in die Länge oder Höhe ziehen sollte.
Hat jemand eine Lösung?
Habe dies per Makro Aufzeichnen versucht gehabt, aber wenn die Bilder unterschiedlich groß sind werden die mit dem Makro auch immer unterschiedlich angepasst.
https://www.herber.de/bbs/user/70615.xls
Vielen Dank für Eure Hilfe
Lieben Gruß
Amina
Anzeige

3
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
Bild-Position und -Größe per VBA anpassen
16.07.2010 11:26:57
NoNet
Hallo Amina,
leider war Deine Mappe leer, sie enthielt weder eine Grafik, noch einen "Rahmen" (es sei denn Du meintest den Zellrahmen um D2:N2 herum), noch einen VBA-Code.
Hier ein Code zum Anpassen der Position und Größe des Bildes "Picture 1" an den Bereich D2:N2 :
Sub BildAnpassen()
With ActiveSheet.Shapes("Picture 1") 'Name des Bildes bitte anpassen !
.LockAspectRatio = msoFalse
.Left = [D2].Left
.Top = [D2].Top
.Width = [D2:N2].Width
.Height = [D2].Height
End With
End Sub
Gruß, NoNet
Anzeige
AW: Bild-Position und -Größe per VBA anpassen
16.07.2010 12:30:33
amintire
Hallo NoNet,
der Code den ich aufgezeichnet habe war
Sub Makro1()
' Makro1 Makro
Selection.ShapeRange.IncrementLeft -667.5
Selection.ShapeRange.IncrementTop -240.75
Selection.ShapeRange.ScaleWidth 1.43, msoFalse, msoScaleFromTopLeft
Selection.ShapeRange.ScaleHeight 1.77, msoFalse, msoScaleFromBottomRight
End Sub

Leider müsste ich bei Deinem Code jedes mal den Namen des Bildes anpassen.
Hier wird immer unter Grafik aus Datei ein Bild hergenommen und soll per VBA / Makro an den Zellrahmen angepasst werden...
Gruß Amina
Anzeige
Shapes(1) anstatt Shapes("Picture 1")
16.07.2010 12:41:36
NoNet
Hallo Amina,
vergiß den Code, den Du aufgezeichnet hast, er ist hier absolut unbrauchbar (das liegt an der Schwäche des Makro-Rekorders - nicht an Dir ;-).
Wenn Du immer nur EIN Bild im Tabellenblatt hast, dann verwende meinen Code und ersetze einfach Shapes("Picture 1") durch Shapes(1) !
Gruß, NoNet
Anzeige
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige
Anzeige

Infobox / Tutorial

Bilder in Excel per VBA anpassen


Schritt-für-Schritt-Anleitung

Um ein Bild in Excel per VBA an eine bestimmte Größe anzupassen, kannst du den folgenden Code verwenden. Dieser Code passt die Größe und Position des Bildes an den Zellrahmen an.

  1. Öffne Excel und drücke ALT + F11, um den VBA-Editor zu öffnen.

  2. Füge ein neues Modul hinzu, indem du mit der rechten Maustaste auf "VBAProject" klickst, "Einfügen" wählst und dann "Modul" wählst.

  3. Kopiere den folgenden Code in das Modul:

    Sub BildAnpassen()
       With ActiveSheet.Shapes(1) ' Verwende Shapes(1) für das erste Bild
           .LockAspectRatio = msoFalse
           .Left = [D2].Left
           .Top = [D2].Top
           .Width = [D2:N2].Width
           .Height = [D2].Height
       End With
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu deinem Excel-Dokument.

  5. Führe das Makro aus, indem du ALT + F8 drückst, das Makro "BildAnpassen" auswählst und auf "Ausführen" klickst.

Du kannst die Zellreferenzen [D2] und [D2:N2] anpassen, um die Position und Größe entsprechend deinem Bedarf zu ändern.


Häufige Fehler und Lösungen

  • Fehler: "Das Bild konnte nicht gefunden werden"

    • Stelle sicher, dass das Bild tatsächlich auf dem Arbeitsblatt vorhanden ist und dass die richtige Shape-Nummer oder der Shape-Name verwendet wird.
  • Fehler: Bild wird nicht korrekt skaliert

    • Überprüfe, ob .LockAspectRatio auf msoFalse gesetzt ist, um die Proportionen des Bildes nicht beizubehalten.
  • Fehler: Makro funktioniert nicht wie erwartet

    • Wenn du mehrere Bilder auf dem Arbeitsblatt hast, kannst du Shapes(1) durch den tatsächlichen Namen des Bildes ersetzen, z.B. Shapes("Picture 1").

Alternative Methoden

Wenn du nicht mit VBA arbeiten möchtest, kannst du Bilder manuell anpassen:

  1. Klicke auf das Bild, um es auszuwählen.
  2. Ziehe an den Ecken oder Seiten des Bildes, um die Größe anzupassen.
  3. Halte die Shift-Taste gedrückt, um das Verhältnis beizubehalten.

Für das Drucken von Bildern in einer bestimmten Größe kannst du die Druckeinstellungen in Excel verwenden, um die Größe entsprechend anzupassen.


Praktische Beispiele

Hier sind einige nützliche Beispiele für die Anpassung von Bildern:

  1. Einfügen und Anpassen eines Bildes in einem bestimmten Bereich:

    Sub BildEinfügenUndAnpassen()
       Dim pic As Shape
       Set pic = ActiveSheet.Pictures.Insert("C:\Pfad\zu\deinem\Bild.jpg")
       With pic
           .LockAspectRatio = msoFalse
           .Left = [D2].Left
           .Top = [D2].Top
           .Width = [D2:N2].Width
           .Height = [D2].Height
       End With
    End Sub
  2. Anpassen aller Bilder auf dem Arbeitsblatt:

    Sub AlleBilderAnpassen()
       Dim shp As Shape
       For Each shp In ActiveSheet.Shapes
           If shp.Type = msoPicture Then
               With shp
                   .LockAspectRatio = msoFalse
                   .Left = [D2].Left
                   .Top = [D2].Top
                   .Width = [D2:N2].Width
                   .Height = [D2].Height
               End With
           End If
       Next shp
    End Sub

Tipps für Profis

  • Nutze Shapes.Range um mehrere Shapes gleichzeitig anzusprechen.
  • Überlege dir, ein benutzerdefiniertes VBA-Formular zu erstellen, um die Eingabeparameter für die Anpassung der Bilder zu steuern.
  • Experimentiere mit der ScaleWidth und ScaleHeight Methode, um Bilder proportional zu skalieren.

FAQ: Häufige Fragen

1. Wie kann ich die Bildgröße in Millimetern anpassen? Um die Größe eines Bildes in Millimetern anzupassen, musst du die Pixelgröße in Millimeter umrechnen, basierend auf der DPI-Einstellung des Bildes.

2. Kann ich den Code auch für Word verwenden? Ja, der VBA-Code kann leicht angepasst werden, um Bilder in Word zu skalieren und anzupassen. Du musst jedoch die entsprechenden Word-Objekte verwenden.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige