Word 97 Macro - Loop to end of doc

I want to write a macro to do an action on each line of a document.

In older Words, you could do it with
WHILE CMPBOOKMARKS (\sel, \EndofDoc))
....
WEND

How is one MEANT to do it in Word97.
I looked for a property such as
ActiveDocument.End
but that doesn't seem to exist.

(Whilst at it, how about end of section as well?)
sgb062497Asked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

frazerCommented:
Hi,

The words you are looking for are....

WdEndOfDocument

and

WdEndOfSection

Hope this helps

Frazer
0
sgb062497Author Commented:
These look like useful words. It still doesn't explain anywhere in the HELP that I can find WHAT to do with them.

I want to do something similar to the VB code below. It won't run this example because the While comparison is invalid.


Selection.HomeKey Unit:=wdStory
Selection.TypeText Text:="> "
Selection.EndKey Unit:=wdLine
While Selection.Range <> ActiveDocument.wdEndOfDocument
    Selection.MoveRight Unit:=wdCharacter, Count:=1
    Selection.TypeText Text:="> "
    Selection.EndKey Unit:=wdLine
Wend

I've also tried using
    While Not WdEndOfDocument
and that is valid but it never ends.

(If it matters, I'm in normal view rather than in Page layout view)

(The word help files are attrocious. You can't find out HOW to do anything, all you can do is find out something you already know about.)

=== sgb
0
sparkoCommented:
okay not quite sure if you want this for each pargraph or each line but for each paragraph you could do

for each aPara in ActiveDocument.Paragraphs


0
sgb062497Author Commented:
sorry about my last answer, submitted it and lost half of it!

Right now depends on if you want the text on a paragraph or a line basis, paragraphs are easier, but here should be the solutions or very close for both.

for paragraphs:

For Each apara In ActiveDocument.Paragraphs
   ActiveDocument.Range(Start:=apara.Range.End - 1, End:=apara.Range.End - 1).Select 'note the -1 so as not to move past the para mark
  Selection.TypeText ">"
Next apara

Now for Lines its a bit trickier but should be something like this

assuming you are at the line you want to start inserting from

While Selection.End < (ActiveDocument.StoryRanges(wdMainTextStory).End - 1) ' this will only do the body text
    Selection.EndKey Unit:=wdLine
    Selection.TypeText ">"
    Selection.Move Unit:=wdCharacter, Count:=1
Wend
Selection.TypeText ">"

Note if you have tables then you had better not try to insert any text on the end of row marker.  This can be ascertained by using :
 if Selection.Information (wdAtEndOfRowMarker) = true then 'this will mean it is at end of a table row.

Cheers Sparko










0
sparkoCommented:
Your methods seem to work.

I can hack them now to achieve what I really want.

Thanks

=== sgb

0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Microsoft Office

From novice to tech pro — start learning today.