Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Fotogröße automatisch ändern

Fotogröße automatisch ändern
Sandra
Hallo Ihr lieben.
Ich hab mal wieder ein Problem.
Diesmal benötige ich ein Makro, welches beim Einfügen von Fotos die Größe des Bildes automatisch auf 6,77 x 9,03 cm ändert.
:-(
Könnt Ihr mir dabei helfen?
Liebe Grüß
Sandra
Anzeige
Fotogröße per Makro ändern
30.11.2009 13:03:56
NoNet
Hallo Sandra,
AUTOMATISCH kann man das Bild leider nicht formatieren, da es in Excel kein Ereignis gibt, das automatisch nach dem Einfügen eines Bildes ausgeführt wird.
Du könntest allerdings das folgende Makro kopiere und diesem einen Shortcut zuweisen :
Sub BildgroesseAnpassen()
'Aktivierte Grafik formatieren :
If TypeName(Selection) = "Picture" Then 'nur wenn Grafik markiert ist :
With Selection.ShapeRange
.LockAspectRatio = False
'Breite und Höhe der Grafik bitte in Klammer hier anpassen :
.Height = Application.CentimetersToPoints(6.77)
.Width = Application.CentimetersToPoints(9.03)
End With
End If
End Sub
Gruß, NoNet
Anzeige
AW: Fotogröße per Makro ändern
30.11.2009 13:25:57
Sandra
Hallo NoNet
Das funktioniert schon ganz gut. Aber das muss für alle Fotos klappen. Ich will das Makro nur einmal ausführen müssen.
Geht es sonst mit einem AddIn o. ä.?
Danke & Gruß
Sandra
GRöße ALLER Bilder per Makro ändern
30.11.2009 14:52:40
NoNet
Hallo Sandra,
probiere es mal hiermit :
Sub AlleBildgroessenAnpassen()
Dim objPic As Object
For Each objPic In ActiveSheet.Pictures
'Alle Grafiken formatieren :
With objPic.ShapeRange
.LockAspectRatio = False
'Breite und Höhe der Grafik bitte in Klammer hier anpassen :
.Height = Application.CentimetersToPoints(6.77)
.Width = Application.CentimetersToPoints(9.03)
End With
Next
End Sub
Gruß, NoNet
Anzeige
AW: GRöße ALLER Bilder per Makro ändern
30.11.2009 15:20:54
Sandra
Hallo NoNet.
Das klappt super. Nun Gibt es nur ein Problem - der Chef möchte ab sofort die Fotos in ein Word-Dokument eingefügt haben. Dafür funktioniert dieses Makro wahrscheinlich nicht. Kennst Du eine Word-Forum-Seite die so gut ist wie dieses Excel-Forum?
P. s. Deine Hilfe war aber nicht umsonst. Durch die Größenanpassung die ich vornehmen kann, kann ich das Makro immer wieder verwenden.
Danke & Gruß
Sandra
Anzeige
Größe ALLER Bilder in WORD per Makro ändern
30.11.2009 16:26:17
NoNet
Hallo Sandra,
hier nun Makro-Lösung #3 - diesmal für WORD :
Sub AlleBildgroessenAnpassen()
Dim objPic As Object
For Each objPic In ActiveDocument.InlineShapes
With objPic
.LockAspectRatio = msoFalse
.Width = Application.CentimetersToPoints(9.03)
.Height = Application.CentimetersToPoints(6.77)
End With
Next
End Sub
Ob es ein vergleichbares Forum für WORD gibt, kann ich nicht beurteilen, da ich sehr selten in WORD-Foren hinein schaue.
Bis Mai 2008 gab es bei Spotlight.de eine WORD-Rubrik - dort habe ich gelegentlich auch Fragen beantwortet und man kann dort zumindest im vorhandenen Archiv noch suchen :
http://www.spotlight.de/zforen/msw/t/forum_msw_1.html
Aktuell kann ich folgende WORD-Foren empfehlen (Anmeldung erforderlich !) :
http://www.ms-office-forum.net
bzw. Unterforum WORD :
http://www.ms-office-forum.net/forum/forumdisplay.php?f=30
Oder auch das allseits bekannte Office-Loesung-Forum :
http://www.office-loesung.de
Viel Erfolg,
Gruß NoNet
Anzeige
AW: Größe ALLER Bilder in WORD per Makro ändern
30.11.2009 17:10:48
Sandra
Das funktioniert leider nicht.
Fehler:Laufzeitfehler 424: Objekt erforderlich.
Außerdem ist mir aufgefallen:
1. Passt er die Größe entsprechend der Ausrichtung an? Also ein Querformatbild muss die Maße ja "anders herum" haben.
2. Auf Seite 1 ist ein Bild das nicht bearbeitet werden soll. Es sollen nur die Bilder in der Tabelle angepasst werden. Geht es nicht irgendwie, dass das Bild bereits beim einfügen angepasst wird?
Danke für Deine Hilfe - ich werde mich mal bei Gelegenheit bei den Word-Foren umsehen.
Bis dato musste ich immer nur Makros für Excel erarbeiten.
Lieben Gruß Sandra
Anzeige
NEIN : Makro "beim Einfügen" gibt es nicht
30.11.2009 17:41:05
NoNet
Hallo Sandra,
da kommst Du ja mit immer neuen Anforderungen :
ein Querformatbild muss die Maße ja "anders herum" haben.

Das ist nicht schön und erschwert die Angelegenheit. Bemühe dich doch bitte gleich zu Beginn alle notwendigen Informationen anzugeben - Danke.
Geht es nicht irgendwie, dass das Bild bereits beim einfügen angepasst wird?

Nein, das geht leider nicht. Excel führt Makros "automatisch" nur in Verbindung mit sog. "Ereignissen" (engl.: "events") aus, z.B: wenn eine Zelle angeklickt wurde oder geändert wurde, ein anderes Blatt ausgewählt wurde etc.
Diese Ereignisse sind in Excel fest vorgegeben ! Ein Ereignis "Beim Einfügen von Bildern" gibt es in Excel nicht, daher kann es dazu auch kein "automatisches" 'Makro geben.
Wie das mit Bildern in Tabellen (oder: nur einer bestimmten Tabelle ?) funktioniert, kann ich leider nicht beantworten, da ich mich dazu zu wenig in WORD VBA (genauer: in der WORD Objekthierarchie und der zugehörigen VBA Schlüsselwörter) auskenne. In diesem Fall ist es tatsächlich geeigneter, wenn Du diese Frage nochmal in einem der genannten WORD-Foren stellst.
Kopiere im WORD-Forum bitte auch die URL Deiner Anfrage hier im Forum hinein, evtl. hilft das den dortigen Helfern. Hier ist die URL :
https://www.herber.de/forum/archiv/1120to1124/t1120981.htm#1120981
Viel Erfolg, Gruß NoNet
Anzeige
AW: NEIN : Makro "beim Einfügen" gibt es nicht
01.12.2009 10:37:58
Sandra
Hallo NoNet.
Es tut mir leid. Aber eine genauere Angabe war mir zu Beginn nicht möglich. Leider fälltd en Chefs immer nach und nach ein was sie haben möchten. :(
Ich habe das ganzue Thema jetzt mal veröffentlicht - mal sehen ob es hilft.
Dir danke ich sehr für Deine Hilfe. Deine Arbeit war ja trotzallem nicht umsonst.
Lieben Gruß
Sandra
Anzeige
AW: Größe ALLER Bilder in WORD per Makro ändern
30.11.2009 17:54:27
fcs
Hallo Sandra,
wie fügst du die Bilder denn in Word ein?
Wenn du die Bilder via Grafik einfügen aus Datei in das Word-Dokument schaffst, dann kann man wahrscheinlich das Makro mit der Anzeige eines Dateiauswahl-Dialogs starten und nach der Dateiauswahl dann das eingefügten Bild manipulieren.
Gruß
Franz
Anzeige
AW: Größe ALLER Bilder in WORD per Makro ändern
01.12.2009 10:08:20
Sandra
Guten Morgen Franz.
Das hört sich ja schon einmal nicht schlecht an.
Also der jetzige Stand sieht so aus:
- Ich habe eine Word-Datei.
- Auf Seiete 1 ist ein Bild, welches nicht geändert werden darf.
- Es gibt in dem Dokument eine Tabelle.
- In diese Tabelle werden die Bilder einzelnd mittels "Grafik einfügen" eingefügt.
- Die Bilder sind nur leider IMMER zu groß.
- Es gibt Bilder sowohl in horizontaler als auch in Vertikaler Ausrichtung.
Hast Du ne Idee, wie ich das realisiert bekomme?
Danke und Gruß
Sandra
Anzeige
AW: Größe ALLER Bilder in WORD per Makro ändern
01.12.2009 17:47:00
fcs
Hallo Sandra,
die nachträgliche Bearbeitung aller Grafikobjekte(Bilder) in der Datei ist etwas mühselig per Makro und auch störungsanfällig. Gut funktionieren die beiden Makros zum Anpassen der Bildgröße wenn du ein eingefügtes Bild markiert hast. Drehen kannst du dann wohl einfacher über die Grafik-Symbolleiste.
Für neu einzubindende Grafiken mal als Grundgerüst das folgende Makro. Es fügt an der Cursor-Position die gewählte Grafik ein und du kannst im Dialog wählen, ob gedreht werden soll.
Du wolltest Höhe und Breite fest vorgeben. Dadurch werden Grafiken ggf. verzerrt, wenn das Original ein anderes Seitenverhältnis hat.
Ich probier nachher nochmal, ob die Makros auch unter Word 2007 funktionieren.
Die Makros richtest du am besten in deiner Normal.dot ein, damit sie immer verfügbar sind.
Gruß
Franz
'Erstellt unter Word 2003 / Windows XP
Sub Grafik_Laden()
' Grafik_Laden Makro
' Grafik laden, Größe anpassen und ggf. drehen
Dim objDoc As Document, DateiGrafik As Variant, objGrafik As InlineShape
Dim objShape As Shape
Dim Auswahl
Set objDoc = ActiveDocument
With Application.FileDialog(msoFileDialogOpen)
.Title = "Bitte zu ladende Grafikdatei auswählen"
.InitialView = msoFileDialogViewPreview
.ButtonName = "Datei wählen"
If .Show = -1 Then
Selection.InlineShapes.AddPicture FileName:= _
.SelectedItems(1), LinkToFile:=False, SaveWithDocument:=True
Set objGrafik = objDoc.InlineShapes(objDoc.InlineShapes.Count)
'Eingefügtes Bild formatieren - Zeilen mit nicht anzupassenden Formate ggf.  _
auskommentieren
With objGrafik
.Fill.Visible = msoFalse
.Fill.Solid
.Fill.Transparency = 0#
.Line.Weight = 0.75
.Line.Transparency = 0#
.Line.Visible = msoFalse
.LockAspectRatio = msoFalse  'Größenverhältniss nicht sperren - verzerrt ggf die  _
Bilder
.Height = Application.CentimetersToPoints(6.77) 'Höhe
.Width = Application.CentimetersToPoints(9.03) 'Breite
.PictureFormat.Brightness = 0.5
.PictureFormat.Contrast = 0.5
.PictureFormat.ColorType = msoPictureAutomatic
.PictureFormat.CropLeft = 0#
.PictureFormat.CropRight = 0#
.PictureFormat.CropTop = 0#
Set objShape = .ConvertToShape 'Umwandlung für Drehen erforderlich
End With
With objShape
Grafik_Drehen:
.WrapFormat.Type = wdWrapSquare 'für Drehen erforderlich
Auswahl = VBA.InputBox(Prompt:="Bild drehen?" & vbLf & vbLf _
& " 0 = nicht drehen" & vbLf _
& " 1 = 90 Grad nach rechts drehen" & vbLf _
& " 2 = 90 Grad nach links  drehen" & vbLf _
& " 3 = 180 Grad nach rechts  drehen", _
Title:="Eingefügte Grafik Drehen", _
Default:=0)
If Not Auswahl = False Then
Select Case Auswahl
Case 0
Case 1
.IncrementRotation 90#
Case 2
.IncrementRotation -90#
Case 3
.IncrementRotation -90#
.IncrementRotation -90#
Case Else
MsgBox "Unzulässige Auswahl für Drehen Grafik. Bitte Eingabe wiederholen"
GoTo Grafik_Drehen
End Select
End If
.ConvertToInlineShape 'Rückkonvertierung
End With
End If
End With
End Sub
Sub BildgroesseQuerAnpassen()
'Aktivierte Grafik im Querformat in Größe anpassen
Dim objRange As Object
On Error GoTo Fehler
Set objRange = Selection.InlineShapes(1)
With objRange
.LockAspectRatio = False
'Breite und Höhe der Grafik bitte in Klammer hier anpassen :
.Height = Application.CentimetersToPoints(6.77)
.Width = Application.CentimetersToPoints(9.03)
End With
Fehler:
With Err
Select Case .Number
Case 0 'Kein Fehler
Case Else
MsgBox "Fehler-nr.: " & .Number & vbLf & .Description
End Select
End With
End Sub
Sub BildgroesseHochAnpassen()
'Aktivierte Grafik im Hochformat in Größe reduzieren
Dim objRange As Object
On Error GoTo Fehler
Set objRange = Selection.InlineShapes(1)
With objRange
.LockAspectRatio = False
'Breite und Höhe der Grafik bitte in Klammer hier anpassen :
.Height = Application.CentimetersToPoints(9.03)
.Width = Application.CentimetersToPoints(6.77)
End With
Fehler:
With Err
Select Case .Number
Case 0 'Kein Fehler
Case Else
MsgBox "Fehler-nr.: " & .Number & vbLf & .Description
End Select
End With
End Sub

Anzeige
AW: Größe ALLER Bilder in WORD per Makro ändern
02.12.2009 03:52:24
fcs
Hallo Sandra,
der unter Word 2003 erstellte Code funktioniert auch unter Word 2007.
Ich hab aber noch ein paar Anpassungen gemacht.
1. Filter für Dateiauswahl
2. Inputbox Option 0 weg
3. Hoch und querliegende Grafiken an Hand der Abmessungen unterschlich in den Abmessungen angepasst.
4. Verarbeitung der Inputbox-Eingaben geändert (Logic, Reihenfolge)
Gruß
Franz
angepasster Code als Textdatei:
https://www.herber.de/bbs/user/66315.txt
Anzeige
AW: Größe ALLER Bilder in WORD per Makro ändern
03.12.2009 17:29:10
Sandra
Hallo zusammen!
Tut mir leid, dass ich mich noch nicht gemeldet habe. Ich werde das bei Gelegenheit ausprobieren und mich noch einmal melden.
Lieben Gruß
und herzlichen Dank!!!
Sandra
;

Forumthreads zu verwandten Themen

Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige

Infobox / Tutorial

Fotogröße automatisch anpassen in Excel und Word


Schritt-für-Schritt-Anleitung

Um die Bildgröße automatisch anzupassen, kannst Du ein VBA-Makro verwenden. Hier ist eine einfache Anleitung, um die Größe von Bildern in Excel oder Word zu ändern:

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

  2. Füge ein neues Modul hinzu: Rechtsklicke im Projektfenster auf "VBAProject" und wähle "Einfügen" > "Modul".

  3. Kopiere den folgenden Code in das Modul:

    Für Excel:

    Sub AlleBildgroessenAnpassen()
       Dim objPic As Object
       For Each objPic In ActiveSheet.Pictures
           With objPic.ShapeRange
               .LockAspectRatio = False
               .Height = Application.CentimetersToPoints(6.77)
               .Width = Application.CentimetersToPoints(9.03)
           End With
       Next
    End Sub

    Für Word:

    Sub AlleBildgroessenAnpassen()
       Dim objPic As Object
       For Each objPic In ActiveDocument.InlineShapes
           With objPic
               .LockAspectRatio = msoFalse
               .Width = Application.CentimetersToPoints(9.03)
               .Height = Application.CentimetersToPoints(6.77)
           End With
       Next
    End Sub
  4. Schließe den VBA-Editor und gehe zurück zu Excel oder Word.

  5. Führe das Makro aus: Drücke ALT + F8, wähle das Makro aus und klicke auf "Ausführen".


Häufige Fehler und Lösungen

  • Fehler: Laufzeitfehler 424: Objekt erforderlich: Dieser Fehler tritt auf, wenn kein Bild ausgewählt ist. Stelle sicher, dass Du ein Bild markierst, bevor Du das Makro ausführst.

  • Problem: Bilder werden in der falschen Ausrichtung angepasst: Achte darauf, die Höhe und Breite je nach Ausrichtung des Bildes anzupassen. Du kannst separate Makros für Hoch- und Querformatbilder erstellen.

  • Makro funktioniert nicht beim Einfügen von Bildern: Es gibt kein Ereignis in Excel, das das automatische Anpassen beim Einfügen von Bildern ermöglicht. Du musst das Makro manuell nach dem Einfügen der Bilder ausführen.


Alternative Methoden

Eine andere Möglichkeit, die Bildgröße automatisch anzupassen, besteht darin, die Bilder zunächst in Excel zu platzieren und dann mit einem Makro für Word zu arbeiten, das alle Bilder in einem Dokument anpasst. Verwende dazu den Dialog zum Auswählen von Dateien, um Bilder direkt ins Word-Dokument einzufügen.


Praktische Beispiele

  • Excel-Bild in Zelle einfügen: Um Bilder in Excel in eine Zelle einzufügen und die Größe automatisch anzupassen, kannst Du das folgende Makro verwenden:

    Sub BildInZelleEinfügen()
       Dim ws As Worksheet
       Set ws = ActiveSheet
       Dim pic As Picture
       Set pic = ws.Pictures.Insert("Pfad\zu\deinem\Bild.jpg")
       With pic
           .ShapeRange.LockAspectRatio = msoFalse
           .Width = ws.Range("A1").Width
           .Height = ws.Range("A1").Height
           .Top = ws.Range("A1").Top
           .Left = ws.Range("A1").Left
       End With
    End Sub
  • Word-Bildgröße anpassen: Wenn Du Bilder in ein Word-Dokument mit festen Maßen einfügst, kannst Du die Größe mit dem folgenden Makro anpassen:

    Sub GrafikLaden()
       Dim objDoc As Document
       Set objDoc = ActiveDocument
       Dim objGrafik As InlineShape
       Set objGrafik = objDoc.InlineShapes.AddPicture("Pfad\zu\deinem\Bild.jpg", LinkToFile:=False, SaveWithDocument:=True)
       With objGrafik
           .LockAspectRatio = msoFalse
           .Width = Application.CentimetersToPoints(9.03)
           .Height = Application.CentimetersToPoints(6.77)
       End With
    End Sub

Tipps für Profis

  • Makros in der Normal.dot speichern: Um die Makros jederzeit verfügbar zu haben, speichere sie in der Normal.dot-Vorlage von Word.

  • Verwende Shortcuts: Weisen Sie häufig verwendeten Makros Shortcuts zu, um sie schneller aufzurufen.

  • InputBox zur Anpassung: Mit einer InputBox kannst Du auch dynamisch entscheiden, welche Maße für die Bildgröße verwendet werden sollen.


FAQ: Häufige Fragen

1. Wie kann ich die Größe von Bildern in Excel automatisch anpassen?
Verwende ein VBA-Makro, das die Größe der Bilder auf die gewünschten Maße einstellt, nachdem sie in das Arbeitsblatt eingefügt wurden.

2. Gibt es eine Möglichkeit, Bilder beim Einfügen in Word anzupassen?
Ja, Du kannst ein Makro erstellen, das die Größe von Bildern anpasst, während Du sie in das Dokument einfügst.

3. Was tun, wenn Bilder bei der Anpassung verzerrt werden?
Stelle sicher, dass die LockAspectRatio-Eigenschaft auf False gesetzt ist, um die Breite und Höhe unabhängig zu steuern.

4. Kann ich alle Bilder in einem Word-Dokument gleichzeitig anpassen?
Ja, indem Du ein Makro verwendest, das durch alle InlineShapes im Dokument iteriert und die Größe anpasst.

5. Gibt es eine Möglichkeit, Bilder in einer Tabelle in Word anzupassen?
Du kannst ein Makro erstellen, das gezielt nur die Bilder in bestimmten Zellen einer Tabelle anpasst.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige