Как ссылаться на фигуры в Visio VBA - PullRequest
0 голосов
/ 14 февраля 2010

Как можно создать конкретные формы в Microsoft Visio, которые можно выбрать через обычный интерфейс? Я ищу код типа ActivePage.addShape(type: person, 100,100, 50,50)

Справочная документация по msdn и visio выглядит немного сложнее для новичка, но это тот случай, когда нужно добавить фигуру вручную, а затем дать ей идентификатор через vba, который можно понять и использовать снова. Или вам нужно создать глобальный подкласс, а затем ссылаться на объекты, которым вы дали имена.

1 Ответ

2 голосов
/ 15 февраля 2010

Функция, которая вам нужна, называется 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.

...