Solved

Word 97 Macro - Loop to end of doc

Posted on 1998-05-27
5
756 Views
Last Modified: 2008-02-01
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?)
0
Comment
Question by:sgb062497
  • 2
  • 2
5 Comments
 
LVL 3

Expert Comment

by:frazer
ID: 1606932
Hi,

The words you are looking for are....

WdEndOfDocument

and

WdEndOfSection

Hope this helps

Frazer
0
 

Author Comment

by:sgb062497
ID: 1606933
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
 
LVL 1

Expert Comment

by:sparko
ID: 1606934
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
 

Author Comment

by:sgb062497
ID: 1606935
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
 
LVL 1

Accepted Solution

by:
sparko earned 150 total points
ID: 1606936
Your methods seem to work.

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

Thanks

=== sgb

0

Featured Post

ScreenConnect 6.0 Free Trial

Check out the updates in one game-changing release, ScreenConnect 6.0, based on partner feedback. New features include a redesigned UI that improves session organization and overall user experience. See the enhancements for yourself!

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Introduction It seems that at least a couple of times per month, I answer a question that requires automating Outlook from another Microsoft Office application, usually (although not always) to send one or more email messages.  For example: …
No matter the version of Windows you are using, you may have some problems with Windows Search running too slow or possibly not running at all. Before jumping into how you can solve this issue, just know there are many other viable alternative deskt…
This video walks the viewer through the process of creating envelopes and labels, with multiple names and addresses. Navigate to the “Start Mail Merge” button in the Mailings tab: Follow the step-by-step process until asked to find the address doc…
This video walks the viewer through the process of creating Hyperlinks for the web and other documents. Select the "Insert" tab: Click "Hyperlink":  Type "http://" followed by a web address to reference a website or navigate to a document to ref…

773 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question