0

Windows XP SP 3 を使用しています。Excel 2003 から Word 2003 に複数のグラフを貼り付けるコードを作成しました。

Dim word As Object
Dim doc As Object
On Error Resume Next

Set word = GetObject(, "word.application") 'gives error 429 if Word is not open
If Err = 429 Then
    Set word = CreateObject("word.application") 'creates a Word application
    Err.Clear
End If

With word
    .Visible = True
    .Documents.Add
End With

Sheets("Data").Select

For i = 1 To 2
    ActiveSheet.ChartObjects(i).Activate
    ActiveChart.ChartArea.Copy
    With word.Selection
        'Paste Chart
        .Range.PasteSpecial
    End With
Next i

知りたいのですが、Excel 2003 のグラフを別の場所に作成された Word ファイルに配置するにはどうすればよいですか? 例: 4 つのチャートを次の順序で配置したいとします: 1 番目のチャートはドキュメント (段落ではなく) の左端に配置され、2 番目のチャートはドキュメントの左側に配置され、3 番目のチャートは 1 番目の下にあります。 4番目。

回答ありがとうございます。

UPD:有用なコメントに基づいて、私の問題に対する次の解決策の概要を説明しました。テンプレート ファイルを作成し、そこに という名前のブックマークを挿入しますinsertHere。このファイルで Excel VBA を使用して変更を行います。

これがこのコードです

Sub macro()
Dim word As Object
On Error Resume Next

Set word = GetObject(, "word.application") 'gives error 429 if Word is not open
If Err = 429 Then
    Set word = CreateObject("word.application") 'creates a Word application
    Err.Clear
End If

Set templateFile = word.documents.Add(Template:="C:\Users\PC\Desktop\Doc4.dot")
Sheets("Data").Select

ActiveSheet.ChartObjects(1).Activate 
ActiveSheet.ChartObject(1).Select
ActiveChart.ChartArea.Copy
With templateFile.Bookmarks
    .Item("insertHere").Range.Paste
End With
End Sub

ただし、このコードはチャートを挿入しません。理由を教えてください。

4

1 に答える 1

4

Bookmarks最も簡単な方法は、グラフを貼り付ける場所を Word で定義することです。Word 2003 では、私の記憶が正しければ、オプションは [挿入] メニューの [ブックマーク] にありました。最初にカーソルを置き、挿入、ブックマーク ( Ctrl-Shift-F5 ) で bkChart1 などの名前を付けます (スペースなし)。それで:

word.ActiveDocument.Bookmarks("bkChart1").Range.PasteAndFormat
' there are other Paste methods, or PasteSpecial

コードを使用してドキュメントと貼り付けたオブジェクトをフォーマットする場合は、Word にいくつかのマクロを記録することをお勧めします。完璧なコードを作成することはできませんが、必要なメソッドとプロパティを見つけるのに役立ちます。

于 2013-07-24T18:03:26.627 に答える