Author |
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, отбрасывает кавычки в начале и конце строки (так надо) и записывает строку в текст шейпа. |
|
|
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 |
|
|
alex_777
6 Posts |
Posted - 03/26/2007 : 11:32:28
|
Спасибо |
|
|
alex_777
6 Posts |
Posted - 04/02/2007 : 12:02:15
|
Добрый день. Как создать макрос который будет опрашивать шейпы, и в зависимость от размеров и цвета будет присваивать определенный номер (примерно 30-40 различных значений) |
|
|
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” не обрабатывается. Как иначе обойти ошибку и выдернуть текст номера.
|
|
|
|
Topic |
|