Forum: PC-Programmierung VBA in word (WMF als PNG speichern) inline shape


von Jens (Gast)


Lesenswert?

Hi,

ich bin gerade mittelschwer am verzeifeln.

Ich habe in einem Word 2010 Dokument (docx) Vektorgrafiken nacheinander 
abgelegt. Sie wurden über die Zwischenablage von Windows kopiert und 
eingefügt. Nun möchte ich sie alle markieren und über ein Klick auf mein 
Makro sollen sie als Bilder (png) an def Pfad abgelegt werden.

Das funktioniert auch schon soweit, ich hab aber noch 2 Probleme

A) Sie werden als *.wmf abgelegt, müsste sie also noch mit iview o.ä. 
converteieren und
B) Sie haben rechts einen breiten weißen Rand und unten auch etwas zu 
viel weißen Rand.

Code:

Set ImageStream = CreateObject("ADODB.Stream")
'Grafikbereich zuordnen
Set Grafikbereich = ActiveDocument.Range(Start:=Selection.Start, 
End:=Selection.End)

with Grafikbereich
   For a = 1 To .InlineShapes.Count


      With ImageStream
      .Type = 1 ' adTypeBinary
      .Open
      .Write Grafikbereich.InlineShapes(a).Range.EnhMetaFileBits
      .SaveToFile "D:\Bild" & a & ".wmf"
      .Close
      End With



   Next a

Wie bekomme ich das inlineshape vor dem abspeichern noch von wmf zu png 
convertiert? es gibt ja in .inlineshapes einige funktionen, unter 
anderem auch format o.ä. aber scheint nichts dabei zu sein. Ich habe 
auch mal was von DirectCast gelesen, geht aber auch nicht.

Dieser Weiße rand rechts wundert mich auch, woher kommt diese 
Überbreite, nimmt er vielleicht die breite des beschreibbaren Bereiches 
aus dem Word doc (die Vektor Grafik in word nimmt nur ca, 3/4 der Breite 
des Dokuments in anspruch) Wie ich das ändern könnte, das wäre 
interessant... :_)

Danke

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.