Событие Documents.ShapeAdded (Visio)

Возникает после добавления в документ одной или нескольких фигур.

Синтаксис

выражение. ShapeAdded (Shape)

выражение Переменная, представляющая объект Documents .

Параметры

Имя Обязательный или необязательный Тип данных Описание
Shape Обязательный [IVSHAPE] Фигура или группа фигур, добавленных в документ.

Примечания

Объект Shape может выступать в качестве исходного объекта для события ShapeAdded , если свойство Type фигуры имеет значение visTypeGroup (2) или visTypePage (1).

События SelectionAdded и ShapeAdded похожи в том, что они запускаются после создания фигур. Они различаются по тому, как они действуют, когда одна операция добавляет несколько фигур. Предположим, что операция вставки создает три новые фигуры. Событие ShapeAdded запускается три раза и воздействует на каждый из трех объектов. Событие SelectionAdded срабатывает один раз и воздействует на объект Selection , в котором выбраны три новые фигуры.

Чтобы определить, было ли событие ShapeAdded вызвано добавлением на страницу новой фигуры или группы фигур, группированием набора существующих фигур или действием вставки, можно использовать свойство Application.IsInScope . Если IsInScope возвращает значение True при передаче visCmdObjectGroup, событие ShapeAdded было вызвано действием группировки. Если IsInScope возвращает значение True при передаче visCmdUFEditPaste или visCmdEditPasteSpecial, событие ShapeAdded было вызвано операцией вставки. Если IsInScope возвращает значение False при передаче всех этих аргументов, событие должно быть вызвано добавлением на страницу новых фигур.

Если вы используете Microsoft Visual Basic или Visual Basic для приложений (VBA), синтаксис в этом разделе описывает распространенный и эффективный способ обработки событий.

Если вы хотите создать свои собственные объекты Event , используйте метод Add или AddAdvice .

Чтобы создать объект Event , который запускает надстройку, используйте метод Add , применяемый к коллекции EventList .

Чтобы создать объект события , получающий уведомление, используйте метод AddAdvice .

Чтобы найти код события для события, которое вы хотите создать, см. Коды событий.

Пример

В этом примере VBA демонстрируется, как подсчитывать фигуры, добавленные в документ на основе master "Квадрат". Вставьте этот код в проект активного документа в Visio.

Обработчик событий DocumentSaved запускается при сохранении активного документа. Обработчик инициализирует целочисленную переменную intNumberOfSquares , которая используется для хранения подсчета.

Обработчик события ShapeAdded выполняется каждый раз при добавлении фигуры на страницу документа при перетаскивании фигуры из набора элементов, рисовании с помощью инструмента рисования или вставке из буфера обмена. Обработчик проверяет свойство Master новой фигуры и, если фигура основана на master Square, увеличивает intNumberOfSquares.

 
Dim intNumberOfSquares As Integer 
 
Private Sub Document_DocumentSaved(ByVal vsoDocument As Visio.IVDocument) 
 
 'Initialize number of squares added. 
 intNumberOfSquares = 0 
 
End Sub 
 
Private Sub Document_ShapeAdded(ByVal vsoShape As Visio.IVShape) 
 
 Dim vsoMaster As Visio.Master 
 
 'Get the Master property of the shape. 
 Set vsoMaster = vsoShape.Master 
 
 'Check whether the shape has a master. If not, 
 'the shape was created locally. 
 If Not (vsoMaster Is Nothing) Then 
 
 'Check whether the master is "Square". 
 If vsoMaster.Name = "Square" Then 
 
 'Increment the count for the number of squares added. 
 intNumberOfSquares = intNumberOfSquares + 1 
 
 End If 
 
 End If 
 
 MsgBox "Number of squares: " & intNumberOfSquares, vbInformation, _ 
 "Document Created Example" 
 
End Sub

Поддержка и обратная связь

Есть вопросы или отзывы, касающиеся Office VBA или этой статьи? Руководство по другим способам получения поддержки и отправки отзывов см. в статье Поддержка Office VBA и обратная связь.