2008-11-10 6 views
4

하나의 파일에 병합 (병합)해야하는 Word 파일이 많으며 Word Merger를 사용하는 데 시간이 많이 걸릴 것입니다. 이 일을 처리 할 수있는 도구를 경험해 보셨습니까?MS Word 파일을 병합하는 도구

답변

4
Sub MergeAllDocuments(AllDocumentsPath as String, MasterDocumentPath as String) 
    Dim MasterDocument As Document 

    Set MasterDocument = Documents.Open(FileName:=MasterDocumentPath) 

    TheDocumentPath = Dir(AllDocumentsPath , vbNormal) 
    While TheDocumentPath <> "" 
    ' Append the next doc to the end of the master doc. (The 
    ' special "\EndOfDoc" bookmark is always available!) 
    MasterDocument.Bookmarks("\EndOfDoc").Range.InsertFile TheDocumentPath 
    TheDocumentPath = Dir 
    Wend 

    MasterDocument.Save 
End Sub 

MergeAllDocuments "C:\MySeparateDocuments\*.doc", "C:\MasterDocument.doc" 

내가 한 질문이 - 왜 당신이 (적어도, 문서의 "엄청난 숫자"로) 그런 일을해야합니까할까요?

+0

하나의 거대한 응용 프로그램에 대해 다른 SRS가 있고 클라이언트가 하나의 마스터 파일에이를 요청합니다. 그래서. – whiz

+0

나는 본다. 작동합니까? – Tomalak

+0

아직 시도하지 않았습니다. 알게 될거야. – whiz

0

Word COM API를 사용해 보셨습니까? 많은 것들을 자동화 할 수 있습니다. 아마도 병합을 자동화 할 수 있습니다.

실제로 병합을 수행해야합니까, 아니면 파일을 함께 병합 하시겠습니까? 두 가지는 상당히 다릅니다.

병합은 원본 파일의 두 가지 버전 (변경 사항이 충돌 할 수 있음)이있는 경우에 사용됩니다. 모두 병합해야하는 파일의 "엄청난 수"를 어떻게 얻을 수 있는지 정말로 알 수 없습니다. 이것은 갈등의 절대적인 악몽이 될 것입니다. 파일 세트를 개별 파일로 병합 하시겠습니까?

계속해서 연결하려는 경우가 있습니다. 이것은 훨씬 더 쉬울 것입니다. 이것은 COM API를 사용하여 가능합니다.

2

Graham Skan이 게시물을 한동안 보았습니다. 그것은 당신이 시작할 수 있습니다

Sub InsertFiles() 
    Dim strFileName As String 
    Dim rng As Range 
    Dim Doc As Document 
    Const strPath = "C:\Documents and Settings\Graham Skan\My Documents\Allwork\" 'adjust as necessary '" 

    Set Doc = Documents.Add 
    strFileName = Dir$(strPath & "\*.doc") 
    Do 
     Set rng = Doc.Bookmarks("\EndOfDoc").Range 
     If rng.End > 0 Then 'section break not necessary before first document.' 
      rng.InsertBreak wdSectionBreakNextPage 
      rng.Collapse wdCollapseEnd 
     End If 
     rng.InsertFile strPath & "\" & strFileName 
     strFileName = Dir$() 
    Loop Until strFileName = "" 
End Sub 
+0

미치, 두 번 편집 해 주셔서 죄송합니다. SO의 강조 표시 모듈은 VBA/VBS의 경우 악명 높게 손상되었습니다. +1하면 목록 끝에서 벗어날 수 있습니다. – Tomalak

+0

문제 없습니다. 더 좋은 코드이기 때문에 +1을드립니다! –

+0

어떻게 강조 표시를 수정 했습니까? –