WD2000: Run-time Error 1042 with WordBasic PageWidth/PageHeight Arguments (209899)



The information in this article applies to:

  • Microsoft Word 2000

This article was previously published under Q209899

SYMPTOMS

When you run a WordBasic macro that has been converted to Visual Basic for Applications, the following error message may appear:
Run-time error '1042': Settings you chose for the left and right margins, column spacing, or paragraph indents are too large for the page in some sections.
Clicking the Debug button opens the Visual Basic Editor, and a command line similar to the following command line may be highlighted:
WordBasic.FilePageSetup PageWidth:=504, PageHeight:=504
				

CAUSE

This behavior is by design. In versions of Word earlier than Word 97, WordBasic uses points for the PageWidth and PageHeight arguments. Because Word 2000 uses twips for these arguments, the value specified may be too small.

The smallest possible page width in Word is 0.5", and the smallest possible page height can be any value above zero if all page margins and paragraph indents are set to zero and column spacing is set to .5".

Because the value of .5" equates to 720 twips (.5 * 1440(twips per inch)), the smallest value that can be used with the PageWidth argument of the WordBasic.FilePageSetUp command is 720. A smaller value results in the error described in the "Symptoms" section of this article. Note that this is dependent on other settings, such as margin, column spacing, and paragraph settings, in which case the error can occur at greater values.

RESOLUTION

Microsoft provides programming examples for illustration only, without warranty either expressed or implied. This includes, but is not limited to, the implied warranties of merchantability or fitness for a particular purpose. This article assumes that you are familiar with the programming language that is being demonstrated and with the tools that are used to create and to debug procedures. Microsoft support engineers can help explain the functionality of a particular procedure, but they will not modify these examples to provide added functionality or construct procedures to meet your specific requirements.
To resolve this issue, change the value of the PageWidth argument or the PageHeight argument or both.

You can use the following formula to obtain the replacement value:

Twips = Points * 20


For example:
Sub PageSetup()

   Dim intPW As Integer
   Dim intPH As Integer

   ' Convert Points to Twips.
   intPW = 504 * 20
   intPH = 504 * 20

   WordBasic.FilePageSetup PageWidth:=intPW, PageHeight:=intPH

End Sub
				

Alternatively, you can specify a value in inches and convert to twips:
Sub PageSetup()

   Dim intPW As Integer
   Dim intPH As Integer

   ' Convert Inches(7 inches) to Twips.
   intPW = InchesToPoints(7) * 20
   intPH = InchesToPoints(7) * 20

   WordBasic.FilePageSetup PageWidth:=intPW, PageHeight:=intPH

End Sub
				

Modification Type:MajorLast Reviewed:6/17/2005
Keywords:kbnofix kbprb KB209899