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

VB/MSWord: add new page and copy contents + bookmarks

Hello,
Using VB I have to add new page to the beginning of the word document and put there same contents including
bookmarks and fields.Need urgent help,please send example!
0
soferstam
Asked:
soferstam
1 Solution
 
MonchangerCommented:
This should get you started, I covered the basics.
Help on this is available in your VBA help or at:
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odeopg/html/deovroffice2000visualbasicprogrammersguide.asp

    ' Open word
    Dim myWord As Word.Application
    Set myWord = CreateObject("Word.Application")
   
'This is good for debuging while writing your code
'myWord.Visible = True

    ' Open our document
    Dim myDoc As Word.Document
    Set myDoc = myWord.Documents.Open(App.Path & "\Doc1.doc")  ' Enter the path to your document here

    ' Ranges are a basic part of all Office applications. Do some reading about them at :
' http://msdn.microsoft.com/library/default.asp?url=/library/en-us/odeopg/html/deovrtherangeobject.asp   
    Dim myRange As Word.Range
   
    '********************************************
    ' Creation of new page at start of document
    ' Go to start of document
    Set myRange = myDoc.GoTo(wdGoToPage, wdGoToAbsolute, 1)
'Debug note: This would cause the document to center on the set range:
'myRange.Select
    ' Insert a pagebreak at the current location
    Selection.InsertBreak wdPageBreak
    Set myRange = Nothing
    '********************************************
   
   
    '********************************************
    ' Adding content to the first page
    ' Select start of this page
    Set myRange = myDoc.GoTo(wdGoToPage, wdGoToAbsolute, 1)
    ' Add text before cursor - this is like typing text using the keyboard,
    ' where you move the cursor forward.
    myRange.InsertAfter "This is new text"
    ' Add a carridge return
    myRange.InsertAfter vbCr
    ' Add a field
    myRange.InsertAfter "More text"
    Set myRange = Nothing
    '********************************************
   
   
    '********************************************
    ' Adding fields
    ' Let's put the filename at the start of page one
    Set myRange = myDoc.GoTo(wdGoToPage, wdGoToAbsolute, 1)
'    myRange.Select
    myDoc.Fields.Add myRange, , "FILENAME"
    '********************************************

    '********************************************
    ' Adding bookmarks
    ' Select the first page
    Set myRange = myDoc.GoTo(wdGoToPage, wdGoToAbsolute, 1)
    ' Add a bookmark - note that bookmark names cannot contain spaces (and various
    ' other characters)
    myDoc.Bookmarks.Add "Page_one", myRange
    '********************************************
   
    '********************************************
    ' Cleanup process:
    ' Save the document
    myDoc.Save
    ' Close the document
    myDoc.Close
    Set myDoc = Nothing
    ' Close word
    myWord.Quit
    Set myWord = Nothing
    '********************************************

BTW - I use Word 2000 (9.0). It is possible you might have a need a few slight changes if you use something else.

Hope this helps.
Good luck :-)
0
 
MonchangerCommented:
I forgot to mention ....
Save your document before testing your code on it !!!
:-)
0
 
n_narayananCommented:
This may help you,

http://www.freevbcode.com/ShowCode.Asp?ID=1539

Full Source Code available there.

Narayanan
0
Industry Leaders: We Want Your Opinion!

We value your feedback.

Take our survey and automatically be enter to win anyone of the following:
Yeti Cooler, Amazon eGift Card, and Movie eGift Card!

 
soferstamAuthor Commented:
Hi,
I'm getting error on Selection.InsertBreak saying object refurs to a "framed paragraph".It means probably that I have frames and Selection object got a frame in it.
Do you know how can I make sure to copy everything on a page,including frames,to a newly created page?
0
 
DanRollinsCommented:
Hi soferstam,
It appears that you have forgotten this question. I will ask Community Support to close it unless you finalize it within 7 days. I will ask a Community Support Moderator to:

    Accept Monchanger's comment(s) as an answer.

soferstam, if you think your question was not answered at all or if you need help, just post a new comment here; Community Support will help you.  DO NOT accept this comment as an answer.

EXPERTS: If you disagree with that recommendation, please post an explanatory comment.
==========
DanRollins -- EE database cleanup volunteer
0
 
SpideyModCommented:
per recommendation

SpideyMod
Community Support Moderator @Experts Exchange
0
 
dc197Commented:
Argh!
On one machine, office 10 (word 2002), it works fine.
But on the office 9 machine (word 2000) I had to change
myRange.Select
Selection.InsertBreak wdPageBreak

to
myRange.InsertBreak wdPageBreak

because the selection objected was allegedly not defined (error 91) on the Word 2000 machine!

Be careful!
0

Featured Post

Free Tool: ZipGrep

ZipGrep is a utility that can list and search zip (.war, .ear, .jar, etc) archives for text patterns, without the need to extract the archive's contents.

One of a set of tools we're offering as a way to say thank you for being a part of the community.

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