This works, I think, but I'd be interested to learn of a more concise method, or of any pitfalls.
I want to insert a section break at the start of the page which contains the selection point, and didn't want to use GoTo and have to mess around with preserving the user's selection and restoring same.
Function rngHeadOfPage(rng As Range) As Range
Dim lngPage As Long
lngPage = lngGetPageNumber(rng, wdActiveEndPageNumber)
Dim objPage As Page
Set objPage = ActiveDocument.ActiveWindow.Panes(1).Pages.Item(lngPage)
Set rngHeadOfPage = objPage.Breaks(1).Range
End Function
Sub TESTrngHeadOfPage()
rngHeadOfPage(Selection.Range).Select
End Sub
Sub InsertBreakAtTopOfPage()
Dim rng As Range
Set rng = ActiveDocument.Bookmarks("\page").Range
rng.Collapse
rng.InsertBreak Type:=wdSectionBreakNextPage
End Sub
HansV wrote:Word keeps track of the "current" page in a hidden bookmark named \page.
Verrry interesting! It seems that the \page bookmark may have another use: F5 > > Go To > \page > selects all the text on the current page. Potentially useful to copy everything on a page if you're on a long page, in Split Screen mode, at 200%, etc.
There is a whole slew of predefined bookmarks - search the Word VBA help or Google. Here is a list:
\Sel
Current selection or the insertion point.
\PrevSel1
Most recent selection where editing occurred; going to this bookmark is equivalent to running the GoBack method once.
\PrevSel2
Second most recent selection where editing occurred; going to this bookmark is equivalent to running the GoBack method twice.
\StartOfSel
Start of the current selection.
\EndOfSel
End of the current selection.
\Line
Current line or the first line of the current selection. If the insertion point is at the end of a line that is not the last line in the paragraph, the bookmark includes the entire next line.
\Char
Current character, which is the character following the insertion point if there is no selection, or the first character of the selection.
\Para
Current paragraph, which is the paragraph containing the insertion point or, if more than one paragraph is selected, the first paragraph of the selection. Note that if the insertion point or selection is in the last paragraph of the document, the "\Para" bookmark does not include the paragraph mark.
\Section
Current section, including the break at the end of the section, if any. The current section contains the insertion point or selection. If the selection contains more than one section, the "\Section" bookmark is the first section in the selection.
\Doc
Entire contents of the active document, with the exception of the final paragraph mark.
\Page
Current page, including the break at the end of the page, if any. The current page contains the insertion point. If the current selection contains more than one page, the "\Page" bookmark is the first page of the selection. Note that if the insertion point or selection is in the last page of the document, the "\Page" bookmark does not include the final paragraph mark.
\StartOfDoc
Beginning of the document.
\EndOfDoc
End of the document.
\Cell
Current cell in a table, which is the cell containing the insertion point. If one or more cells of a table are included in the current selection, the "\Cell" bookmark is the first cell in the selection.
\Table
Current table, which is the table containing the insertion point or selection. If the selection includes more than one table, the "\Table" bookmark is the entire first table of the selection, even if the entire table is not selected.
\HeadingLevel
The heading that contains the insertion point or selection, plus any subordinate headings and text. If the current selection is body text, the "\HeadingLevel" bookmark includes the preceding heading, plus any headings and text subordinate to that heading.