2016-07-19 8 views
1

グラフをExcelからコピーして、画像としてWordに貼り付けるマクロを作成します(拡張メタファイルが好ましい)。ExcelでExcelグラフをWordにコピーするとグラフのサイズが変更される

ピクチャを挿入する特定のセルにブックマークを含むテーブルでWordテンプレートドキュメントをセットアップしました。

しかし、私の現在のコードでは、挿入された画像が大きすぎてテーブル全体をねじ込みます。 私はさまざまな画像オプション(拡張メタファイル、pngなど)を試しましたが、それらはすべて同じ結果を持っています。

テーブルにPasteSpecialを使用してグラフを手作業でコピーしようとすると、元のサイズに維持されます。

コードを変更するにはどうすればよいですか?

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

手書きでコピー/ペーストしながらマクロを記録し、コードを比較しようとしましたか? –

+0

はい、問題は、Excelで行うこと(つまり、Word文書に挿入する方法ではなく、グラフを選択してコピーする)だけを記録することです。 Wordでグラフを貼り付けるマクロを記録しようとすると、グラフを挿入するテーブルを選択できません。 – Rafael

+0

手動で貼り付けると、プレースメントは何ですか?私はインラインの代わりにそのタイトなと信じています。また、単語にはインラインシェイプがあり、それを調べます。それが助けになるでしょう。 – cyboashu

答えて

2

うん、それはそれだ:

私は

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

この方法で

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

を交換し、チャートのサイズは、Excelシートの場合と同じまま!

+0

良いもの..... – cyboashu

関連する問題