Dave,
Regarding your question...
"If every page had a range name, would it be possible to write a macro to add and remove page breaks between range names?"...
Here's a routine that will remove page breaks "within" 3 separate ranges on 3 separate worksheets.
This requires that the range names be assigned to the 3 ranges - which I've named: range1, range2, range3.
At the bottom of each of the three ranges, it's required that a range name be assigned to the bottom row. I've used the names: range1_br, range2_br, range3_br.
Preferably on a separate sheet (that you have for macros), include these routines in column B. In column A, opposite the first line, enter the label for the letter you'll be using to activate the macro. I've used "\Q". Then of course create the range name "\Q" for the first row of the routine - column B.
{INDICATE Deleting Page Breaks}{WINDOWSOFF}{PANELOFF}
{LET rownum,@CELL("row",range1_br)}{GOTO}range1~{delete_breaks}{HOME}
{LET rownum,@CELL("row",range2_br)}{GOTO}range2~{delete_breaks}{HOME}
{LET rownum,@CELL("row",range3_br)}{GOTO}range3~{delete_breaks}{HOME}
{FC}
{WINDOWSON}{PANELON}{INDICATE}
Leave at least one blank row, and then enter the next subroutine in Column B. In column A, enter the label "delete_breaks". Then opposite, in column B, create the range name "delete_breaks".
{IF @CELLPOINTER("row"

=rownum}{RETURN}
{PAGE-BREAK-ROW "OFF"}
{D}
{BRANCH delete_breaks}
Leave at least one blank row, and enter the label "rownum" in Column A. In Column B, create the range name "rownum".
===============================================
A Second Option... If you want to refer to "specific" cell locations where you want to add or delete page breaks, then the following option might be preferable.
I've only created an example for 3 ranges, but of course you could extend this to whatever number of ranges you require.
Again, in Column A, it's a good practice to identify your macro with a label. For example I've used "\Q" for the following - which is entered in Column B. Of course next create the range name "\Q" for the first line of code.
The following routine is of course for Deleting Page Breaks.
{INDICATE Deleting Page Breaks}{WINDOWSOFF}{PANELOFF}
{GOTO}range1~{PAGE-BREAK-ROW "OFF"}
{GOTO}range2~{PAGE-BREAK-ROW "OFF"}
{GOTO}range3~{PAGE-BREAK-ROW "OFF"}
{HOME}
{FC}
{WINDOWSON}{PANELON}{INDICATE}
This next routine is for Adding Page Breaks. As for the above routine, also add a label in Column A, and create a range name in Column B. I've used "\W"
{INDICATE Adding Page Breaks}{WINDOWSOFF}{PANELOFF}
{GOTO}range1~{PAGE-BREAK-ROW "ON"}
{GOTO}range2~{PAGE-BREAK-ROW "ON"}
{GOTO}range3~{PAGE-BREAK-ROW "ON"}
{HOME}
{FC}
{WINDOWSON}{PANELON}{INDICATE}
The range names can be on any worksheet.
{HOME} takes you to cell A1 of the existing worksheet.
{FC} takes you to cell A1 of the first worksheet.
I hope this helps. Please advise as to how it fits.
jo'k, I hope you too can possibly utilize this. Certainly if your user want to "permanently" remove the page breaks, then Option 1 might be useful. My first answer was based on your user wanting to "temporarily" ignore the page breaks.
Regards, ...Dale Watson dwatson@bsi.gov.mb.ca