Функция, которая вам нужна, называется Drop. Первым аргументом является dropObject, который может быть ссылкой на другую фигуру, текущую выбранную фигуру или мастер-объект из шаблона Visio.
Вы можете попробовать это, чтобы увидеть, как это работает:
Dim ShpObj As Visio.Shape
Set ShpObj = ActivePage.Drop(ActiveWindow.Selection, 100, 50)
Таким образом, использование ActiveWindow.Selection означает, что Visio продублирует выбранную форму и поместит ее в 100, 50.
Чтобы получить мастер, вам нужно сначала найти документ трафарета, который содержит мастер. Вот пример размещения формы треугольника из шаблона блок-схемы Basic Shapes:
Dim ShpObj As Visio.Shape
Set ShpObj = ActivePage.Drop(Application.Documents("BASIC_U.VSS").Masters("Triangle"))
Установка результата функции Drop на ShpObj означает, что вы можете обратиться к нему позже в коде. В противном случае в классе Page существует коллекция Shapes, которая содержит все фигуры на странице.
Надеюсь, это станет хорошим началом для вас в программировании в Visio VBA.