グラフを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
手書きでコピー/ペーストしながらマクロを記録し、コードを比較しようとしましたか? –
はい、問題は、Excelで行うこと(つまり、Word文書に挿入する方法ではなく、グラフを選択してコピーする)だけを記録することです。 Wordでグラフを貼り付けるマクロを記録しようとすると、グラフを挿入するテーブルを選択できません。 – Rafael
手動で貼り付けると、プレースメントは何ですか?私はインラインの代わりにそのタイトなと信じています。また、単語にはインラインシェイプがあり、それを調べます。それが助けになるでしょう。 – cyboashu