c) Hier sollen aber nun auch noch die Diagramme aus Excel gezogen werden per Bookmarks ist das leider nicht möglich, kann mir jeamnd hierbei bittee weiterhelfen?
Warum ist soll das nicht möglich sein?
Option Explicit
Enum WdUnits
'...
wdCharacter = 1
'...
End Enum
Enum WdOLEPlacement
wdFloatOverText = 1
wdInLine = 0
End Enum
Enum WdPasteDataType
wdPasteBitmap = 4
wdPasteDeviceIndependentBitmap = 5
wdPasteEnhancedMetafile = 9
wdPasteHTML = 10
wdPasteHyperlink = 7
wdPasteMetafilePicture = 3
wdPasteOLEObject = 0
wdPasteRTF = 1
wdPasteShape = 8
wdPasteText = 2
End Enum
Sub NachWordUebertragen()
'Word LateBinding
Dim appWord As Object 'Word.Application
Dim Report As Object 'Word.Document
Dim obj As Object
Set appWord = ...
Set Report = ...
Report.Bookmarks("Vorname").Range.Text = Range("Vorname")
'...
If Report.Bookmarks.Exists("BKName_Chart") Then
'obj As Word.Range
Set obj = Report.Bookmarks("BKName_Chart").Range
'Chart kopieren [Excel] & einfügen [Word]
Call Shapes(1).Copy '< Beispiel
Call obj.PasteSpecial(Placement:=WdOLEPlacement.wdInLine, _
DataType:=WdPasteDataType.wdPasteMetafilePicture, _
DisplayAsIcon:=False)
Call obj.MoveStart(Unit:=WdUnits.wdCharacter, Count:=-1)
'obj As Word.InlineShape
Set obj = obj.InlineShapes(1)
'obj.ScaleWidth = 50 '50% width
'...
'...
End If
'...
End Sub
Grüße
PS: Ich gehe im obigen Makro davon aus, dass das Makro im Klassenmodul eines Tabellenblattes steht und das dieses Blatt nur ein Shape (Diagramm) enthält.
PPS: Wenn du einem Bookmark etwas zuweist, geht der Bookmark verloren. Willst du ihn behalten, merk dir vorher dessen Word.Range und setze den Bookmark durch die Range - nach der Zuweisung des Inhalts - neu (dafür bietet es sich an, eine eigene Hilfsfunktion zu schreiben).
|