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

ID: Q209899


The information in this article applies to:


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, including, but not limited to, the implied warranties of merchantability and/or fitness for a particular purpose. This article assumes that you are familiar with the programming language being demonstrated and the tools used to create and debug procedures. Microsoft support professionals 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 needs. If you have limited programming experience, you may want to contact the Microsoft fee-based consulting line at (800) 936-5200. For more information about the support options available from Microsoft, please see the following page on the World Wide Web:

http://www.microsoft.com/support/supportnet/refguide/

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 

Additional query words: vba


Keywords          : kbdta kbwordvba wd2000 
Version           : WINDOWS:2000
Platform          : WINDOWS 
Issue type        : kbprb 

Last Reviewed: May 13, 1999