PC Review


Reply
Thread Tools Rate Thread

Can you merge 2 Word documents together (not mail merge)

 
 
Kurby
Guest
Posts: n/a
 
      30th Dec 2008
I have 2 word documents both have a lot of photos and drawn lines and both
would be a pain to copy and paste into another one so i'm wondering if i can
merge one in the other or insert one into the other like you can with
pictures or clip art.

Thanks
 
Reply With Quote
 
 
 
 
Jay Freedman
Guest
Posts: n/a
 
      30th Dec 2008
On Mon, 29 Dec 2008 17:27:00 -0800, Kurby <(E-Mail Removed)>
wrote:

>I have 2 word documents both have a lot of photos and drawn lines and both
>would be a pain to copy and paste into another one so i'm wondering if i can
>merge one in the other or insert one into the other like you can with
>pictures or clip art.
>
>Thanks


For Word 2003 or earlier: With the cursor at the end of one document, click
Insert > File and choose the second document from the dialog.

For Word 2007: With the cursor at the end of one document, click the Insert tab
of the ribbon, click the down arrow on the Object button, choose Text From File,
and choose the second document from the dialog.

--
Regards,
Jay Freedman
Microsoft Word MVP FAQ: http://word.mvps.org
Email cannot be acknowledged; please post all follow-ups to the newsgroup so all may benefit.
 
Reply With Quote
 
 
 
 
New Member
Join Date: Jul 2012
Posts: 1
 
      28th Jul 2012
Here's a VB script which will merge many

documents into one word doc, in filename

alphabetic order. TO use: put the code below

into a text file with suffix".vbs", and

create a folder called "docs" in the same

place where the .vbs script is. Place all the

docs you wnt to merge into the docs folder,

then drag it onto the .vbs file. The output

will be created in "docs_CONCATENATED.doc".
=========================================

'DOCmerge - merges several Word documents (.DOC files) together
'Author: George Birbilis ((E-Mail Removed)) / Zoomicon (www.zoomicon.com)
'Version: 20080325
'On Error Resume Next
const ONLY_DOC = false 'set to true to allow concatenation only of .DOC files (not .TXT etc.)
const MSG_SYNTAX = "Drop a folder with Word (.DOC) documents onto this icon to produce a Word file with the concatenation of these documents"
const MSG_FINISHED = "" '"Finished"
const TXT_SUFFIX = "_CONCATENATED.doc"
const wdPasteDefault = 0
const wdPageBreak = 7
'----------------------------------------
dim word, fs, folderpath, outdocname, folder, outdoc
'----------------------------------------
'----------------------------------------
Sub ShowList( ByRef arrListName, ByVal strPrefix )
' Custom subroutine displaying the contents of an ArrayList on a
' single line, and the capacity and size on a separate second line.
' Arguments used are:
' arrListName: the name of the ArrayList to be displayed
' strPrefix: a short description to be displayed before the
' actual content of the ArrayList

Dim intLen, strItem, strList

' specify the maximum length of the descriptive text
intLen = 20

' save the ArrayList content to a string
For Each strItem in arrListName
strList = strList & " " & strItem
Next
' trim or pad the description to its maximum length, append the ArrayList content string, and display it
WScript.Echo Left( strPrefix & Space( intLen ), intLen ) & ": " & strList
' display the ArrayList's current size and capacity
WScript.Echo Left( "Count/Capacity" & Space( intLen ), intLen ) & ": " & arrListName.Count & "/" & arrListName.Capacity
End Sub
'-------------------------------------------------------
Sub ParseCommandLine
Dim args
Set args = wscript.arguments
if args.count = 0 then
msgbox MSG_SYNTAX
wscript.quit
end if
folderpath = args.item(0)
outdocname = folderpath + TXT_SUFFIX
End Sub
'----------------------------------------
Sub StartServers
'-- Start Word
Set word = CreateObject("Word.Application")
'word.Visible = true
Set fs = CreateObject("Scripting.FileSystemObject")
Set folder = fs.GetFolder(folderpath)
End Sub
'----------------------------------------
Sub DeleteOldOutput
If fs.FileExists(outdocname) Then
fs.DeleteFile(outdocname)
End If
End Sub

Sub ProcessFile(filename, insertBreak)
Dim doc
Set doc = word.Documents.Open(filename)
word.Selection.WholeStory
word.Selection.Copy
outdoc.Activate
if insertBreak then word.Selection.InsertBreak wdPageBreak

'word.Selection.PasteAndFormat wdPasteDefault
word.Selection.Paste 'use this one so that it works for Word2000 too
doc.Close
Set doc = Nothing
End Sub

Sub Process
DeleteOldOutput
Dim f, first
Dim Item
Dim outputLines
first = true
Set outputLines = CreateObject("System.Collections.ArrayList")
For Each f in folder.Files
if (ucase(right(f.path,4) ) = ".DOC" ) then
outputLines.Add f.name
'MsgBox f
end if
next
outputLines.Sort
ShowList outputLines, "output files"

For Each Item in outputLines
Dim fso, fileItem, filenm
Set fso = CreateObject("Scripting.FileSystemObject")
filenm = folderpath + "\" + Item

'MsgBox filenm 'uncomment this if you want to see the files as they are processed

Set fileItem = fso.GetFile(filenm)
if (not ONLY_DOC) or (ucase(right(fileItem.path,4)) = ".DOC") then
if first then
Set outdoc = word.Documents.Add
outdoc.SaveAs outdocname
ProcessFile fileItem.path, false
first = False
else
ProcessFile fileItem.path, true
end if
end if
Next
If Not first Then 'if at least one file was processed
outdoc.Save
outdoc.Close
End If
End Sub
'----------------------------------------
Sub Cleanup
Set outdoc = Nothing
word.Quit
Set word = Nothing
Set folder = Nothing
Set fs = Nothing
if MSG_FINISHED<>"" then MsgBox(MSG_FINISHED)
End Sub
'----------------------------------------
ParseCommandLine
StartServers
Process
Cleanup
 
Reply With Quote
 
New Member
Join Date: Aug 2012
Posts: 1
 
      24th Aug 2012
I love this script Stipo. How might we run it via command line?

I intend to use it in a task sequence. During the application install phase, each application that was selected to be installed will drop its manual follow up procedures in this folder. During the cleanup phase I need these docs merged... but I need it to be interaction free.

How might I modify your script to do this, either by passing it the folder name or better yet hard coding the value for the folder name?

Again, great script and thank you for any help you are willing to offer!
 
Reply With Quote
 
 
 
Reply

Thread Tools
Rate This Thread
Rate This Thread:

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Mail-Merge: Can we have master detail relationship or multiple entities in word Mail-Merge? gmax2006 Microsoft Word Document Management 1 28th Mar 2007 06:28 PM
Word 2000 Mail Merge: Word found no mail merge fields Brian Harvey Microsoft Excel Discussion 1 23rd Nov 2006 08:59 PM
How can you merge together 2 different profile calendars on one? =?Utf-8?B?ZGdjYXJ0ZXIyMDA0?= Microsoft Outlook Calendar 2 30th Aug 2005 09:54 PM
Re: Question??? You know when you double click in a username field you see your previous entries? How do you reset this so you can see your entries again. Thorsten Matzner Windows XP New Users 0 5th Jun 2004 04:34 PM
Question??? You know when you double click in a username field you see your previous entries? How do you reset this so you can see your entries again. =?Utf-8?B?Y2hyaXM=?= Windows XP General 1 3rd Jun 2004 08:17 PM


Features
 

Advertising
 

Newsgroups
 


All times are GMT +1. The time now is 12:52 AM.