2016-07-19 24 views
1

Ich möchte ein Makro erstellen, das Diagramme aus Excel kopiert und fügt sie in Word als Bilder (vorzugsweise Enhanced Metafiles).VBA Kopieren Excel-Diagramm in Word als Bild ändert die Diagrammgröße

Ich habe ein Word-Vorlage-Dokument mit einer Tabelle eingerichtet, die Lesezeichen in bestimmten Zellen enthält, in die die Bilder eingefügt werden sollen.

Mit meinem aktuellen Code ist das eingefügte Bild jedoch viel zu groß und verschraubt die ganze Tabelle. Ich habe versucht, verschiedene Bildoptionen (erweiterte Metadatei, Png, etc.), aber sie haben alle das gleiche Ergebnis.

Wenn ich versuche, das Diagramm von Hand mit PasteSpecial in der Tabelle zu kopieren, behält es die ursprüngliche Größe, die genau so ist, wie ich es will.

Was muss ich in meinem Code ändern, um das zu bekommen?

Sub CopyCharts2Word() 

Dim wd As Object 
Dim ObjDoc As Object 
Dim FilePath As String 
Dim FileName As String 
FilePath = "C:\Users\Name\Desktop" 
FileName = "Template.docx" 


'check if template document is open in Word, otherwise open it 
On Error Resume Next 
Set wd = GetObject (, "Word.Application")  
If wd Is Nothing Then 
    Set wd = CreateObject("Word.Application") 
    Set ObjDoc = wd.Documents.Open(FilePath & "\" & FileName) 
Else 
    On Error GoTo notOpen 
    Set ObjDoc = wd.Documents(FileName) 
    GoTo OpenAlready 
notOpen: 
    Set ObjDoc = wd.Documents.Open(FilePath & "\" & FileName) 
End If 
OpenAlready: 
On Error GoTo 0 

'find Bookmark in template doc 
wd.Visible = True            
ObjDoc.Bookmarks("Boomark1").Select 

'copy chart from Excel   
Sheets("Sheet1").ChartObjects("ChartA").chart.ChartArea.Copy   

'insert chart to Bookmark in template doc 
wd.Selection.PasteSpecial Link:=False, _ 
DataType:=wdPasteMetafilePicture, _ 
Placement:=wdInLine, _ 
DisplayAsIcon:=False 

End Sub 
+0

Haben Sie versucht, das Makro während des Kopierens/Einfügens von Hand aufzuzeichnen und die Codes zu vergleichen? –

+0

Ja, Problem ist, es zeichnet nur auf, was ich in Excel mache (d. H., Wähle und kopiere das Diagramm, nicht wie ich es in das Word-Dokument einfüge). Wenn ich versuche, ein Makro des Einfügens des Diagramms in Word aufzuzeichnen, kann ich nicht die Tabelle auswählen, in der ich das Diagramm einfügen möchte. – Rafael

+0

Wenn Sie manuell einfügen, was ist das Placement? Ich glaube, es ist eng statt inline. Auch Wort hat Inline-Formen, schau hinein. Das wird helfen. – cyboashu

Antwort

2

Ja, das ist es:

I

ersetzt
'insert chart to Bookmark in template doc 
wd.Selection.PasteSpecial Link:=False, _ 
DataType:=wdPasteMetafilePicture, _ 
Placement:=wdInLine, _ 
DisplayAsIcon:=False 

mit

wd.Selection.PasteSpecial Link:=False, _ 
DataType:=wdPasteMetafilePicture, _ 
Placement:=wdTight, _  
DisplayAsIcon:=False 

Auf diese Weise bleibt die Größe des Diagramms die gleiche wie in der Excel-Tabelle!

+0

Gute Sachen ..... – cyboashu