2013-07-24 12 views
0

은 내가 어떻게 배치 할 수 있습니다, 이해하고 싶은 말씀 2003붙여 넣기 단어 Excel 차트, VBA

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 

을 엑셀 2003에서 여러 차트를 붙여 내가 작성한 코드를 윈도우 XP SP 3를 사용하고 Excel 2003에서 차트를 다른 장소에서 만든 단어 파일로? 전의. 첫 번째 차트는 문서의 왼쪽 끝 (단락이 아님)에 할당되고, 두 번째 차트는 문서의 왼쪽에 배치되고, 3D는 첫 번째 차트 아래에 배치되며, 두 번째 차트는 문서의 왼쪽에 배치됩니다. 4 일.

답장을 보내 주셔서 감사합니다.

UPD : 유용한 설명에 기초하여 다음과 같은 문제점을 해결했습니다. 템플릿 파일을 작성하고 insertHere이라는 책갈피를 삽입하십시오. 이 파일에서 Excel VBA를 사용하여 make가 변경됩니다. 여기

이 코드는 차트를 삽입하지 않습니다, 그러나이

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

가장 쉬운 방법은 차트에 붙여 넣으려는 위치에 대해 Word에 Bookmarks을 정의하는 것입니다. Word 2003에서 제대로 호출 한 경우 옵션은 삽입 메뉴의 책갈피입니다. 먼저 커서를 놓고 삽입, 책갈피 (Ctrl-Shift-F5)를 bkChart1과 같은 이름으로 지정하십시오 (공백없이). 그런 다음 :

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

당신은 다음 Word에서 몇 가지 매크로를 기록 할 잘 할 것 코드를 사용하여 문서 및 붙여 넣은 객체의 형식을 선호하는 경우

. 완벽한 코드를 작성하지는 않지만 필요한 메소드와 속성을 찾는 데 도움이됩니다.

+0

+1. 북마크가이를 수행하는 방법입니다. –

+0

업데이트 된 코드를 친절하게 확인해 주시겠습니까? –

+0

차트 개체가 아니라 ChartObjects (1) 여야합니다. 그리고 템플리트가 여전히 북마크를 포함하는지 다시 한번 확인하십시오 - 템플리트를 수정하는 동안 템플리트가 사라지기 쉽습니다. –