figure out cursor location in word 03

D

daniel lie

Hi,

I was wondering if anyone might be able to help me with the following
problem that i'm having.

Is there a way of figuring out where the cursor is in a document?

The reason for that is I have a code that would insert a new Section in the
document report.

Here is the code

' Insert a heading for the new section.
Selection.Style = ActiveDocument.Styles("Section Heading 1")

' Insert the heading's text based on InputBox entry.
' Add a paragraph break to return to "Normal" text.

Selection.InsertBreak Type:=wdPageBreak

Selection.TypeText Text:=InputBox("Please enter section heading:", "Enter
Section Heading")
Selection.TypeParagraph

This will work if the cursor is on the newline. It would place another
section (e.g. Section 2) on the next page. However, the problem arises when
the cursor is not on the newline.

For example,

Section 1. Water Sewage
Blah blah
Classification report

If the user by accident leaves the cursor at the end of the word "report"
and select the macro to insert a new section, it'd be stuffed up.

Instead of getting Section 2 to show on the next page, i'd get as follows:

Section 1. Water Sewage
Blah blah

Section 2. Classification report

--------- page break -------
Section 3. Reconciliation

Not sure if anyone would like to throw in some ideas here. What i come up
with is if we could find out where the cursor is and can check to see if
it's at the newline or not.

Your help'd be greatly appreciated.

Thank you in advance

url:http://www.ureader.com/gp/1022-1.aspx
 
D

Doug Robbins - Word MVP

You should use the .Range object rather than the Selection object and
set/manipulate the range to be the place where you want the Break inserted.

--
Hope this helps.

Please reply to the newsgroup unless you wish to avail yourself of my
services on a paid consulting basis.

Doug Robbins - Word MVP
 
S

StevenM

To: Daniel,

<< Is there a way of figuring out where the cursor is in a document? >>

Of course, but in relation to what?

You speak of a "newline," do you mean an empty line, or something else?
If you're looking for the next empty line, then perhaps you need something
like:

Selection.Bookmarks("\line").Select
While Len(Selection.Text) > 1
Selection.Move wdLine, 1
Selection.Bookmarks("\line").Select
Wend
Selection.Collapse wdCollapseStart

Each empty line has a paragraph mark, and so a lenght of 1.

Steven Craig Miller
 
D

daniel lie

Thank you Doug and Steven for your replies.

Steven, apologise for not making it a lot clearer for you to understand my
problem.

Yes, your assumption's right. It's the empty line I was talking about.
However, not sure what you meant by "but in relation to what?".

I tried the code you gave and it still doesn't work. I think this may be to
do with the fact that there is a page break involved there in the code.

Here is the code i got
myValue = InputBox("Enter here: ")

If myValue <> "" Then
myText = Trim(myValue)

' Insert a heading for the new section.
Selection.Style = ActiveDocument.Styles("Section Heading 1")

Selection.Bookmarks("\line").Select
While Len(Selection.Text) > 1
Selection.Move wdLine, 1
Selection.Bookmarks("\line").Select
Wend
Selection.Collapse wdCollapseStart 'move cursor to the start of the
new paragraph

' Add a paragraph break to return to "Normal" text.
Selection.InsertBreak Type:=wdPageBreak
Selection.TypeText (myText)
Selection.TypeParagraph
End If

In the mean time, trying to figure how to use .range

Thank you in advance

url:http://www.ureader.com/msg/10228359.aspx
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top