Grafik per VBA formatieren

oschwenn

Grünschnabel
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
 
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
 
Zurück