WD2000: Shape Position Differs Using AddShape with Tables

ID: Q209565


The information in this article applies to:


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, 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 a Microsoft Certified Solution Provider or the Microsoft fee-based consulting line at (800) 936-5200. For more information about Microsoft Certified Solution Providers, please see the following page on the World Wide Web:

http://www.microsoft.com/mcsp/
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 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:

Q226118 OFF2000: Programming Resources for Visual Basic for Applications

Additional query words: vba


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

Last Reviewed: June 15, 1999