2015-11-20 4 views
0

Я использую Visio 2013 и VBA. Я хочу получить Characters из формы I, установленной на странице. Я пробовал:Извлечь форму из выбора visio

Dim s As Visio.shape 
Dim c As Visio.Characters 
Set s = ActiveWindow.Selection.ContainingShape 
c = s.Characters 

Но у меня возникла ошибка при построении c. Возможно ли, что я хочу делать?

+0

Что ошибка вы получаете? –

ответ

1

Метод ContainingShape на обычной странице чертежа, скорее всего, вернет страницу (ID = 0), и это не поддерживает объект Characters. Выбор может содержать несколько фигур, но свойство PrimaryItem вернет одну форму или значение null/nothing, если выбор пуст.

Так что ваш код должен выглядеть следующим образом:

Dim s As Visio.Shape 
Dim c As Visio.Characters 
Set s = ActiveWindow.Selection.PrimaryItem 
If Not s Is Nothing Then 
    Set c = s.Characters 
    'Do something with characters 
End If