WD2000: Shape Position Differs Using AddShape with Tables (209565)



The information in this article applies to:

  • Microsoft Word 2000

This article was previously published under Q209565

SYMPTOMS

When you run a Visual Basic for Applications macro that creates and anchors a shape to a Word table selection, the position of the shape may appear in a different location from where it appeared in earlier versions of Word.

CAUSE

This behavior is by design. In Word 2000, shapes can anchor inside table cells. In versions of Word earlier than Word 2000, anchors cannot be located inside tables. For example, in Word 97 the anchor of the object is forced outside the table cell, and the anchor position measures distance relative to the page. In Word 2000, the anchor remains inside the cell and measures distance from the edge of the table cell.

WORKAROUND

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 work around this issue, you can use one of the following methods:

Method 1: Use the OptimizeForWord97 Property

The OptimizeForWord97 property optimizes the current document for viewing in Word 97 by disabling any incompatible formatting.

The following line added to a macro corrects the problem:

ActiveDocument.OptimizeForWord97 = True

NOTE: Using the OptimizeForWord97 property sets a flag for the document and affects all other macros, even those meant for Word 2000, unless it is reset to False. For this reason, you may want to include the OptimizeForWord97 property both at the beginning and at the end of your macro.

For example:

Sub AddShape()
   ActiveDocument.OptimizeForWord97 = True
   '< Commands to add shape >
   ActiveDocument.OptimizeForWord97 = False
End Sub
				

Method 2: Rewrite the Macro to Reposition the Shape

You can rewrite your commands so that the object is positioned as expected.

For more information about adding and positioning an object using Visual Basic for Applications, in the Visual Basic Editor, click Microsoft Visual Basic Help on the Help menu, type AddShape Method in the Office Assistant or the Answer Wizard, and then click Search to view the topic.

REFERENCES

For more information about getting help with Visual Basic for Applications, please see the following article in the Microsoft Knowledge Base:

226118 OFF2000: Programming Resources for Visual Basic for Applications


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