All Forums
 Категория Visio
 Форум Вопросы и ответы
 Доступ к Custom Prop из VB.
Author Previous Topic Topic Next Topic  

alex_777

6 Posts

Posted - 03/23/2007 :  12:09:23
Добрый день.
Подскажите пж. выход из такой ситуатции:
Каким образом с помощью VB или VBA получить данные из активного файла Visio по всем шейпам из ячеек Custom prop и Display text, и сл. шаг заменить существующий Display Text на значение Custom Prop.
Спасибо.

Tumanov

Russia
1198 Posts

Posted - 03/23/2007 :  19:10:54
Вот такой макрос

Sub ttt()
Dim sh As Visio.Shape
For Each sh In ActivePage.Shapes
sh.Text = Mid(sh.Cells("Prop.Row_1").Formula, 2, Len(sh.Cells("Prop.Row_1").Formula) - 2)
Next
End Sub

обходит все шейпы на активной странице, выбирает значение (формулу) из первого Custom Properties, отбрасывает кавычки в начале и конце строки (так надо) и записывает строку в текст шейпа.
Go to Top of Page

Tumanov

Russia
1198 Posts

Posted - 03/25/2007 :  13:46:42
Ой, такой макрос вылетит на первом же шейпе, у которого нет Custom Properties.
Надо добавить защиту
Sub ttt()
Dim sh As Visio.Shape
For Each sh In ActivePage.Shapes
On Error Resume Next
s = Mid(sh.Cells("Prop.Row_1").Formula, 2, Len(sh.Cells("Prop.Row_1").Formula) - 2)
If Err Then
Debug.Print "Ошибка"
Else
sh.Text = s
End If
On Error GoTo 0
Next
End Sub
Go to Top of Page

alex_777

6 Posts

Posted - 03/26/2007 :  11:32:28
Спасибо
Go to Top of Page

alex_777

6 Posts

Posted - 04/02/2007 :  12:02:15
Добрый день.
Как создать макрос который будет опрашивать шейпы, и в зависимость от размеров и цвета будет присваивать определенный номер (примерно 30-40 различных значений)
Go to Top of Page

alex_777

6 Posts

Posted - 04/02/2007 :  12:52:09
Еще маленький вопрос.

Код для получения текста номера (Number of Customase Property) из Shape Sheet’a:
On Error Resume Next
ShapeText = visShape.Cells("Prop.Number").Formula
If Err Then
ShapeText = “Error”
End If
В виде макроса под VBA работает безупречно, однако при переносе в VB6 ошибка “Unexepted end of file” не обрабатывается. Как иначе обойти ошибку и выдернуть текст номера.
Go to Top of Page
  Previous Topic Topic Next Topic  
Данный сайт является архивом форума visio.artberg.ru, который был закрыт в связи с переходом на новую платформу visio.getbb.ru
Все материалы доступны только для чтения! Если у вас появились вопросы, или вы хотите что-то обсудить, связанное с Visio, обращайтесь на новый форум!
Архив был создан благодаря совместным усилиям Генадия Туманова @Tumanov (visio.artberg.ru), Александра ака @Surrogate (visio.getbb.ru), и Николая Белых @nbelyh (unmanagedvisio.com)