• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 2989
  • Last Modified:

Split every page of a word document into a new file

in word 2007 I have 850 pages in a document and i want to convert each page of this document into a new file(document).
In the sense I need to make 850 new documents(files) from a file containing 850 pages.
Each page of the document should be created into a new document
Is this possible?
any help would be very appreciated.
2 Solutions
The best way I can think to do this would be to convert the document into a pdf then use Adobe Pro to split up the document easily.  In Adobe 8.1 you do this by;

1) Click on Document then Extract Pages
2) Set it to start at page 1 and finish at page 850
3) Check the box for Extract pages as separate files
4) Click ok and let it run all day

Then if you really need to have it back in word convert it back to text (hopefully you don't have any pictures).

Click View Tab, Click Macros and View Macros
Type SplitWordDoc and Click Create
Delete Everything and Copy Paste Below Code
File and Save Normal
Go Back to Word, Click Macros and View Macros, Click Run

It should automatically save every page to a separate file with a number appended to the end of the file name.
Public Sub SplitWordDoc()
Dim sPath As String
Dim sName As String
Dim p As Long
Dim docNew As Document
Dim rngSource As Range
'gets document application path to provide saving location
sPath = ActiveDocument.Path & "\"
sName = Replace(ActiveDocument.Name, ".doc", "", Compare:=vbTextCompare)
'go to start of document
Selection.HomeKey wdStory
Application.ScreenUpdating = False
'get current page count
'for each page in the document
For p = 1 To ActiveDocument.BuiltInDocumentProperties(wdPropertyPages)
    'select the page
    'move left 1 character
    Selection.MoveLeft wdCharacter, 1, wdExtend
    'set the range to be copied to new document
    Set rngSource = Selection.Range.FormattedText
    'create new document
    Set docNew = Documents.Add
    'copy page contents
    docNew.Range.FormattedText = rngSource
    'save the document
    docNew.SaveAs sPath & sName & "_Page" & p & ".doc"
    'close the document
    docNew.Close True
    'go to the next page
    Selection.GoTo What:=wdGoToPage, Which:=wdGoToNext
Next p
'go to start of document
Selection.HomeKey wdStory
Application.ScreenUpdating = True
End Sub

Open in new window

Hello, this code saved me HOURS of time!!  Is there a way to modify this code to have every TWO pages saved as a document instead of every page?  Thank You!!!!!
Free Tool: Port Scanner

Check which ports are open to the outside world. Helps make sure that your firewall rules are working as intended.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Change the line

'for each page in the document
For p = 1 To ActiveDocument.BuiltInDocumentProperties(wdPropertyPages)


'for each page in the document
For p = 2 To ActiveDocument.BuiltInDocumentProperties(wdPropertyPages)
Thanks for the quick feedback.  This change did not fix the issue.  It still saves one page only.  The only difference was it started with Page 2.  Any other thoughts?
I sorta got it to work...  :)  

For p = 1 To ActiveDocument.BuiltInDocumentProperties(wdPropertyPages)

   rngSource.EndOf Unit:=wdSection, Extend:=wdExtend
  I changed the rngSource to pull the text through the end of the section.  This worked by placing all of the info on one page then saving that page.   However, it also "duplicated" the second page and saved it as its own document as well.  So, this worked for me as I only utilized the odd number documents that were saved and I ignored the even numbered documents.  I'm sure there is a much more elegant way to do this as I am a complete nOOb but the end result got me what I needed...

I don't know if I have to open a new thread for this pleas you let me know.

I need to do this but to save each page in text (.TXT) format. I found this parameter:

FileFormat  - Optional Variant  - The format in which the document is saved. Can be any WdSaveFormat constant. To save a document in another format, specify the appropriate value for the SaveFormat property of the FileConverter object.

How do I integrate the FileFormat into the script?

Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

Join & Write a Comment

Featured Post

Train for your Pen Testing Engineer Certification

Enroll today in this bundle of courses to gain experience in the logistics of pen testing, Linux fundamentals, vulnerability assessments, detecting live systems, and more! This series, valued at $3,000, is free for Premium members, Team Accounts, and Qualified Experts.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now