Microsoft KB Archive/209565

= WD2000: Shape Position Differs Using AddShape with Tables =

Article ID: 209565

Article Last Modified on 6/17/2005

-

APPLIES TO


 * Microsoft Word 2000 Standard Edition

-



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.

