Page.Drop Method (Visio)

Office 2013 and later

Contribute to this content

Use GitHub to suggest and submit changes. See our guidelines for contributing to VBA documentation.

Creates one or more new Shape objects by dropping an object onto a receiving object such as a master, drawing page, shape, or group.

expression .Drop(ObjectToDrop, xPos, yPos)

expression A variable that represents a Page object.




Data Type





The object or selection to drop. While this is typically a Visio object such as a Master, Shape, or Selection object, it can be any OLE object that provides an IDataObject interface.




The x-coordinate at which to place the center of the shape's width or PinX.




The y-coordinate at which to place the center of the shape's height or PinY.

Return Value


Using the Drop method is similar to moving a shape with the mouse. The object dropped (ObjectToDrop) can be a master or a shape on the drawing page.

To add a shape to a group or on a drawing page, apply the Drop method to a Shape or Page object, respectively. The center of the shape's width-height box is positioned at the specified coordinates, and a Shape object that represents the shape that is created is returned. When applying this method to a Shape object, make sure that the Shape object represents a group.

If ObjectToDrop is a Master, the pin of the master is dropped at the specified coordinates. A master's pin is often, but not necessarily, at its center of rotation.

If your Visual Studio solution includes the Microsoft.Office.Interop.Visio reference, this method maps to the following types:

  • Microsoft.Office.Interop.Visio.IVPage.Drop(object, double, double)

The following example shows how to use the Drop method to drop shapes onto Page and Shape objects.

Public Sub Drop_Example() 
    Dim vsoShape1 As Visio.Shape  
    Dim vsoShape2 As Visio.Shape  
    Dim vsoShape3 As Visio.Shape  
    Dim vsoGroupShape As Visio.Shape  
    Dim vsoSubShape As Visio.Shape  
    Dim vsoSelection As Visio.Selection 
    Set vsoShape1 = ActivePage.DrawRectangle(1, 2, 2, 1)  
    Set vsoShape2 = ActivePage.DrawRectangle(1, 4, 2, 3)  
    'Drop a shape on the page.  
    Set vsoShape3 = ActivePage.Drop(vsoShape1, 3.5, 3.5)  
    'Make sure only one shape is selected to start.  
    Set vsoSelection = ActiveWindow.Selection 
    vsoSelection.Select vsoShape1, visDeselectAll + visSelect  
    vsoSelection.Select vsoShape2, visSelect  
    'Create a group shape.  
    Set vsoGroupShape = vsoSelection.Group  
    'Drop a shape on the group shape to create a new subshape.  
    Set vsoSubShape = vsoGroupShape.Drop(vsoShape3, 1, 2)  
End Sub