2017-01-06 5 views
-2

Я хочу получить информацию о форме из состояния (стандартный трафарет UML). Вы можете видеть на картинке заголовок «Aktiv» и «Eintritt /» и т. Д. Я не знаю, где взять это как переменную.Visio VBA - Как получить заголовок и субтитры формы состояния (UML)

UML example

Edit: Для того, чтобы понять, я не знаю, как я могу получить информацию из формы UML в Visio. Вот пример кода:

Private Sub test() 
Dim s As Shape 
Dim vsoPage As Visio.Page 
Dim getStateName As String 
'I need the name for example "Aktiv" from the state 
'and the name of the "Sub" information as "Eintritt" etc. 

Set vsoPage = ThisDocument.Pages(1) 
For Each s In vsoPage.Shapes 
    getStateName = s.???? 
Next s 

End Sub 
+5

Здравствуйте и добро пожаловать в Stack Overflow, это не " код для меня ". Просьба представить доказательства ваших усилий, чтобы мы могли вам помочь. Я советую вам прочитать [задать вопрос] –

+0

Эй, @ victor-moraes, спасибо за ваш комментарий. Но жаль, что я не объяснил это правильно. Я не хочу, чтобы люди кодировали меня. Я просто хочу знать, как называется метод для получения информации, которую я ищу. Мой пример кода выглядит как это нравится (это действительно неважно, но вы его просили :) Test

+0

Не уверен, что вы пытались выполнить его, но [это похоже на начало] (https://msdn.microsoft. com/en-us/library/office/ff766497.aspx) –

ответ

0

Хорошо, я нашел решение, но не знаю, есть ли еще приятнее.

Private Sub test() 
    Dim s As Shape 
    Dim vsoPage As Visio.Page 
    Dim getStateTitle As String 
    Dim getStateSubTitle As String 

Set vsoPage = ThisDocument.Pages(1) 

For Each s In vsoPage.Shapes 
    If Contains(s) = False Then 
    'Not a Stateshape 
    Else 
    getStateTitle = getStateTitle & s.Shapes.Item(1).Text & vbCrLf 
    getStateSubTitle = getStateSubTitle & s.Text & vbCrLf 
    End If 
Next s 
End Sub 

с

Public Function Contains(s As Shape) As Boolean 
Dim DummyString As String 
On Error GoTo err 
    Contains = True 
    DummyString = s.Shapes.Item(1) 
    Exit Function 
err: 
    Contains = False 
End Function 

Так состояние форма содержит фактически две формы, таким образом, вы можете получить информацию из пункта 1 или 2.

Смежные вопросы