3.2k Aufrufe
Gefragt in Textverarbeitung von
Hallo zusammen!

Ich suche für Word 2003 ein Makro, das Folgendes leisten soll:

Das Makro soll starten mit einem Doppelklick auf eine zuvor von Hand importierte Grafik (wmf).

Unter "Bilder formatieren" soll es die Ränder der Grafik jeweils auf feste Größen (li, re, oben, unten) zuschneiden, die Bildgröße auf einen bestimmten Wert skalieren und das Layout auf "passend" und zentriert einstellen.

Wenn ich den Makroeditor aufrufe, kann ich aber nicht einmal einen Doppelklick ins Bild machen. Der Cursor wechselt zu einem Kassettensymbol, mit dem ich die Grafik gar nicht erst auswählen kann.

Würde mich freuen, hierfür eine Unterstützung zu bekommen.

NB

4 Antworten

0 Punkte
Beantwortet von
So, das Grafikformatieren klappt jetzt soweit über ein eigenes Makro, allerdings kann ich das Layout "Passend, zentriert" nicht automatisieren, da die Auswahl grau unterlegt ist.

Da bastle ich noch ein bisschen, aber vielleicht hat ja noch jemand eine Idee.

NB
0 Punkte
Beantwortet von massaraksch Experte (3.1k Punkte)
Mußt wohl, falls es ein InlineShape-Objekt ist, dieses erstmal in ein Shape-Objekt umwandeln.

Codeschnipsel dazu und zur Formatierung:
If Selection.Type = wdSelectionInlineShape Then Selection.InlineShapes(1).ConvertToShape

With Selection.ShapeRange
.Left = wdShapeCenter
.WrapFormat.Type = wdWrapTight
.WrapFormat.Side = wdWrapBoth
End With

Massaraksch
0 Punkte
Beantwortet von
Super, Massarakasch. Hat wunderbar funktioniert.

Jetzt hab ich nur noch eine Frage (dazu ein Ausschnitt des VBA-Codes):

Selection.InlineShapes(1).Fill.Visible = msoFalse
Selection.InlineShapes(1).Fill.Solid
Selection.InlineShapes(1).Fill.Transparency = 0#
Selection.InlineShapes(1).Line.Weight = 0.75
Selection.InlineShapes(1).Line.Transparency = 0#
Selection.InlineShapes(1).Line.Visible = msoFalse
Selection.InlineShapes(1).LockAspectRatio = msoTrue
Selection.InlineShapes(1).Height = 680.6
Selection.InlineShapes(1).Width = 453.25
Selection.InlineShapes(1).PictureFormat.Brightness = 0.5
Selection.InlineShapes(1).PictureFormat.Contrast = 0.5
Selection.InlineShapes(1).PictureFormat.ColorType = msoPictureAutomatic
Selection.InlineShapes(1).PictureFormat.CropLeft = 131.53
Selection.InlineShapes(1).PictureFormat.CropRight = 85.04
Selection.InlineShapes(1).PictureFormat.CropTop = 131.53
Selection.InlineShapes(1).PictureFormat.CropBottom = 310.12
Selection.InlineShapes(1).Fill.Visible = msoFalse
Selection.InlineShapes(1).Fill.Solid
Selection.InlineShapes(1).Fill.Transparency = 0#
Selection.InlineShapes(1).Line.Weight = 0.75
Selection.InlineShapes(1).Line.Transparency = 0#
Selection.InlineShapes(1).Line.Visible = msoFalse
Selection.InlineShapes(1).LockAspectRatio = msoTrue
Selection.InlineShapes(1).Height = 376.15
Selection.InlineShapes(1).Width = 341.55
Selection.InlineShapes(1).PictureFormat.Brightness = 0.5
Selection.InlineShapes(1).PictureFormat.Contrast = 0.5
Selection.InlineShapes(1).PictureFormat.ColorType = msoPictureAutomatic
Selection.InlineShapes(1).PictureFormat.CropLeft = 131.53
Selection.InlineShapes(1).PictureFormat.CropRight = 85.04
Selection.InlineShapes(1).PictureFormat.CropTop = 131.53
Selection.InlineShapes(1).PictureFormat.CropBottom = 310.12


Damit wird der Dialog zur Änderung der Grafikformatierung aufgerufen. Wie man sieht, geschieht der Aufruf zweimal, denn wenn ich versuche, alle Änderungen in einem Rutsch einzugeben, erhalte ich nicht das gewünschte Ergebnis.

Was ich gerne noch anders haben würde, wäre, dass die neue Größe nicht als Pixelwert (Height = 376.15 und Width = 341.55) angegeben wird, sondern das Ganze prozentual umgesetzt wird (in Form von ScaleHeight = 116, ScaleWidth = 116; ich hab die Größe ja auch prozentual während der Makro-Aufnahme verändert). Aber wenn ich Height und Width entsprechend durch Scale... ersetze, erhalte ich als Resultat nur einen schmalen Balken. Wie lässt sich die Bildgröße prozentual ändern?

Vielen Dank!

NB
0 Punkte
Beantwortet von
Und noch etwas:

Kann ich per Code auch eingeben, dass die Grafik auf Höhe des Cursors eingefügt wird?
Denn wenn ich das Makro auf einer Seite ablaufen lasse, auf der ich schon eine Grafik eingefügt habe, legt sich die neue über die alte...

Das Verschieben ist natürlich kein Problem, aber wenn schon Makro, denn schon... ;-)

NB
...