Shape.Copy Method (Visio)

Copies a shape to the Clipboard.


expression. Copy( _Flags_ )

expression A variable that represents a Shape object.


Name Required/Optional Data Type Description
Flags Optional Variant Determines how shapes are translated during the copy operation.

Return Value



Possible values for Flags are declared by the Visio type library in VisCutCopyPasteCodes , and are described in the following table.

Flag Value Description
visCopyPasteNormal &;H0 Follow default copying behavior.
visCopyPasteNoTranslate &;H1 Copy shapes to their original coordinate locations.
visCopyPasteCenter &;H2 Copy shapes to the center of the page.
visCopyPasteNoHealConnectors &;H4 Do not clean up connectors attached to cut shapes.
visCopyPasteNoContainerMembers &;H8 Do not cut and copy unselected members of containers or lists.
visCopyPasteNoAssociatedCallouts &;H16 Do not cut and copy unselected callouts associated with shapes.
visCopyPasteDontAddToContainers &;H32 Do not add pasted shapes to any underlying containers.
visCopyPasteNoCascade &;H64 Do not offset shapes on copy.

Setting Flags to visCopyPasteNormal is the equivalent of the behavior in the user interface. You should use visCopyPasteNormal and the other flags consistently. For example, if you use the value visCopyPasteNoTranslate to copy, you should also use that value to paste, because that is the only way to ensure that shapes are pasted to their original coordinate location.

To make a copy without using the Clipboard, use the Duplicate method.


The following example shows how to use the Copy method. It draws a rectangle and then copies it to the Clipboard.

Public Sub Copy_Example() 
 Dim vsoShape As Visio.Shape 
 Set vsoShape = ActivePage.DrawRectangle(1, 5, 5, 1) 
 'Copy the shape to the Clipboard. 
End Sub