2016-01-14 2 views
0

Я скопирую графики из Excel (2010) в виде изображений в Word. Копирование-вставка работает, но окончательный график в Word отличается от оригинала, а то, что я копирую-вставляю вручную (Вставить специальный - Картинка).Макрос для копирования диаграммы Внешний вид изменений в Excel-Word

Я попытался изменить DataType в Вставить и Формат в копии, но результат всегда один и тот же. Любой другой вариант?

Sub ChartsToWord() 

Dim WDApp As Word.Application 
Dim WDDoc As Word.Document 
Dim iCht As Integer 
Dim Msg As String 

Set WDApp = CreateObject("Word.Application") 
Set WDDoc = WDApp.Documents.Add 

For iCht = 1 To ActiveSheet.ChartObjects.Count 
    ' copy chart as a picture 
    ActiveSheet.ChartObjects(iCht).Chart.CopyPicture _ 
    Appearance:=xlScreen, Size:=xlScreen, Format:=xlBitmap 


    WDApp.Selection.Range.PasteSpecial Link:=False, DataType:=wdPasteEnhancedMetafile, _ 
    Placement:=wdInLine, DisplayAsIcon:=False 


    WDApp.Selection.MoveEnd wdStory 
    WDApp.Selection.Move 
Next 
WDDoc.SaveAs ("C:\Temp\charts.docx") 
WDDoc.Close ' close the document 

' Clean up 
Set WDDoc = Nothing 
Set WDApp = Nothing 

End Sub 

ответ

1

Попробуйте скопировать ChartObject с Copy Метод

ActiveSheet.ChartObjects(iCht).Copy 

И попытайтесь наклеивать как Bitmap или PNG:

WDApp.Selection.Range.PasteSpecial Link:=False, DataType:=wdPasteBitmap, _ 
Placement:=wdInLine, DisplayAsIcon:=False 

WDApp.Selection.range.PasteSpecial Link:=False, DataType:=14, Placement:=wdInLine, _ 
DisplayAsIcon:=False 
+0

Это хорошо работает, но как я мог изменить его размер поместиться на странице? – user2082695

+0

Если вам нужно развернуть изображение диаграммы, чтобы оно соответствовало странице Word, вы потеряете ясность по мере увеличения изображения. Но, если вы найдете ширину страницы Word, затем измените размер chartobject соответственно ** до того, как ** вы его скопируете, тогда вы ** должны ** получить правильное размерное изображение в слове с наивысшим качеством. – ThunderFrame

+0

Это наоборот, изображение слишком велико в Excel. Если я уменьшу его в Excel, он изменит его ось, которую я хочу избежать. Измените размер изображения, сохраняя соотношение widht * height - лучший вариант, но я не могу найти, как это сделать. – user2082695

Смежные вопросы