Как получить тип фигуры в Visio с помощью VBA? - PullRequest
0 голосов
/ 25 февраля 2019

Я использую Visio 2016 и VBA и работаю с файлом Visio с более чем 100 вкладками.Мне нужно извлечь данные (в основном текст, соединитель из / в и фигуры) для обработки данных для механизма обработки.

Я пытаюсь понять, как получить имя типа фигуры в Visio.Например, в блок-схеме я пытаюсь выяснить, как определить, является ли фигура процессом, решением, данными и т. Д.

Использование свойства типа фигуры всегда возвращает 3, что выглядит какvisTypeShape из https://docs.microsoft.com/en-us/office/vba/api/visio.visshapetypes.

У кого-нибудь есть идеи, как получить тип фигуры с помощью VBA?Я также в порядке с синтаксическим анализом XML из файла OpenXML напрямую, но я также не могу найти имя формы в файлах XML.

Я ценю любую помощь заранее.

1 Ответ

0 голосов
/ 25 февраля 2019

Не знаю, почему мой вопрос был опущен, но я только разобрался с ответом, поэтому делюсь информацией на тот случай, если кто-то еще столкнется с этой проблемой, и я нигде не нашел ответа.

Форма.Master.Name вернет имя фигуры, но вам нужно сначала проверить, является ли это Ничем, если это не фигура.Я этого не делал, и он продолжал ломать скрипт.

Этот фрагмент будет перебирать все фигуры на активной странице и получит идентификатор и имя фигуры:

Public Sub GetShapeAndID()

Dim visShape As Shape

For Each visShape In ActivePage.Shapes
    If Not visShape.Master Is Nothing Then
     Debug.Print visShape.ID & " - " & visShape.Master.Name
    End If
Next

End Sub
...