# Grafik per VBA formatieren



## oschwenn (22. Juni 2004)

Hallo zusammen,

ich muß div. Bilder in Word-Dateien einfügen und einheitlich anpassen (Größe &  Layout).
Dafür hatte ich mir unter Word97 ein Makro gebastelt (aufgenommen) und nutzen können.
Anwendungsbeispiel:
1. Bild einfügen und markieren
2. Makro ausführen
3. Bild wird autom. auf richtige Größe formatiert und richtig positioniert.

Da mein neuer PC Word2000 hat kämpfe ich gerade mit Problemen dieses Makro wieder in Word einzubauen. Ich kann zwar mit umständen eine folge von schritten aufnehmen aber leider erscheint beim anwenden des makros Fehlermeldungen "Laufzeitfehler 4198 - befehl misslungen"

    Selection.ShapeRange.Fill.Visible = msoFalse
    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 = msoFalse
    Selection.ShapeRange.LockAspectRatio = msoTrue
    Selection.ShapeRange.Height = 237.55
    Selection.ShapeRange.Width = 226.75
    Selection.ShapeRange.PictureFormat.Brightness = 0.5
    Selection.ShapeRange.PictureFormat.Contrast = 0.5
    Selection.ShapeRange.PictureFormat.ColorType = msoPictureAutomatic
    Selection.ShapeRange.PictureFormat.CropLeft = 0#
    Selection.ShapeRange.PictureFormat.CropRight = 0#
    Selection.ShapeRange.PictureFormat.CropTop = 0#
    Selection.ShapeRange.PictureFormat.CropBottom = 0#

Bemerkung : beim aufnehmen des Makros kann nicht keine Bilder markieren, geschweigedenn mit der rechten maustaste auf "grafik formatieren" auswählen.

Wer weiß Rat ? - vielen Dank im voraus

Ol!ver


----------



## Lumaluna (27. Juli 2004)

Hallo Oliver,

das gleiche Problem hatte ich auch: Die Bilder konnte ich beim Makro Aufzeichnen nicht formatieren und die alten Makros von Word 97 funktionierten nicht mehr, bzw nur wenn man das Bild zuvor markiert und einen Textfluss ausgewählt hat.
Das Problem ist meiner Meinung nach, dass wenn in Word2000 mehrere Bilder markiert sind, das Program nicht weis welches es nun formatieren soll.
Darum habe ich folgenden Quelltext am Anfang im Makro ergänzt:

If (Selection.InlineShapes.Count > 0) Then
    Selection.InlineShapes(1).ConvertToShape
End If

Hier wird zuerst überprüft ob mindestens ein Bild markiert wurde. Anschließend wird das Erste der markierten Bilder zur Bearbeitung freigegeben. Der restliche Quellcode kann dann wieder über Selection.ShapeRange.* auf das Bild zugreifen.


Zusätzlich habe ich dem Makro noch eine Fehlerbehandlungsroutine hinzugefügt, wodurch verhindert wird, dass wenn kein Bild oder ein anderes Objekt markiert wurde das Makro nicht abstürzt sondern eine Meldung angezeit wird.

'ganz am Anfang des Quelltextes einfügen:
On Error GoTo fehlerbehandlung

'ganz am Ende des Quelltextes einfügen:
Exit Sub
fehlerbehandlung:
    If (Err = 424) Then
       MsgBox("Sie haben kein Bild markiert")
    Else
       MsgBox(Err) 'Zeigt die Fehlernummer an
    End If

Viel Glück damit

Andi


----------



## oschwenn (27. Juli 2004)

Hallo Andi,

vielen Dank für Deinen Tip - dieses hat auf Anhieb geklappt !

schönen Tag noch!

gruß
Oliver


----------

