Поделиться через


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

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

Синтаксис

expression. ShapeAdded (Shape)

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

Параметры

Имя Обязательный или необязательный Тип данных Описание
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 или AddAdvise .

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

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

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

Пример

В этом примере VBA показано, как подсчитать фигуры, добавленные в рисунок, на основе образца с именем Square. Вставьте код в проект активного документа в Visio.

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

Обработчик событий ShapeAdded выполняется каждый раз, когда фигура добавляется на страницу документа, независимо от того, перетаскивается ли фигура из набора элементов, рисуется с помощью инструмента рисования или вставлена из буфера обмена. Обработчик проверяет свойство 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 и обратная связь.