0

初心者として VBA で多くの作業を行った後、最終的にグラフを Excel から Word にコピーして、Word でブックマークされている場所に移動できます。ただし、コードを更新するときに同じ場所にある新しいグラフを置き換えたい場合、Word の古いグラフは削除されないため、古いグラフの上にグラフが追加されます。

古いチャートを削除し、同じブックマークされた場所に新しいチャートを追加するのに役立つVBAコードの機能はありますか?

以下は、ExcelからWordにチャートをコピーするためにExcelで書いたコードです。

Sub Bookmarkchart()
Application.ScreenUpdating = False
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set WordDoc = objWord.Documents.Open("F:\charts.doc")
Sheets("ToFilm").Activate
ActiveSheet.ChartObjects("Chart 2").Chart.CopyPicture _
Appearance:=xlScreen, Size:=xlScreen, Format:=xlPicture
WordDoc.Bookmarks("testbookmark").Range.PasteSpecial Link:=False, _
DataType:=wdPasteMetafilePicture, Placement:=wdFloatOverText, _
DisplayAsIcon:=False
WordDoc.Close
Set WordDoc = Nothing
Set objWord = Nothing
Application.ScreenUpdating = True
End Sub

Word ファイルからチャートを削除し、新しいチャートを置き換えるにはどうすればよいですか。

4

1 に答える 1

1

Word で貼り付けた後、画像に名前を付けることができます。

Selection.Name = "MyPic"

コードの先頭で、新しいバージョンを貼り付ける前に最新バージョンを削除する必要があります。

WordDoc.Shapes("MyPic").Delete

編集: 完全なコードは次のようになります。私はそれをテストしていないので、解決すべきバグが 1 つか 2 つあるかもしれません。

Sub Bookmarkchart()
Application.ScreenUpdating = False
Set objWord = CreateObject("Word.Application")
objWord.Visible = True
Set WordDoc = objWord.Documents.Open("F:\charts.doc")
On Error Resume Next
WordDoc.Shapes("MyPic").Delete
On Error Goto 0
Sheets("ToFilm").Activate
ActiveSheet.ChartObjects("Chart 2").Chart.CopyPicture _
Appearance:=xlScreen, Size:=xlScreen, Format:=xlPicture
WordDoc.Bookmarks("testbookmark").Range.PasteSpecial Link:=False, _
DataType:=wdPasteMetafilePicture, Placement:=wdFloatOverText, _
DisplayAsIcon:=False
Selection.Name = "MyPic"
WordDoc.Close
Set WordDoc = Nothing
Set objWord = Nothing
Application.ScreenUpdating = True
End Sub
于 2013-09-18T12:48:07.610 に答える