All Forums
 Категория Visio
 Форум Вопросы и ответы
 Как заполнить "Custom Properties" используя VBA?
Author Previous Topic Topic Next Topic  

VladimirALenin

5 Posts

Posted - 05/15/2008 :  16:54:07
Здравствуйте!
Как записать в "Custom Properties" для шэйпа значение переменной типа String?
почему-то описанная ниже конструкция воспринимает только числа?
строка воспринимается только если её указывать в тройных кавычках
т.е. strOP2 = """" & strOP & """"
Как это можно обойти? Или я пользуюсь не подходящими для решения этой задачи инструментами?

Sub Macro1()
    Dim strOP As String
    strOP = "OPISANIE"

    Dim UndoScopeID1 As Long
    UndoScopeID1 = Application.BeginUndoScope("Custom Properties")
    Dim vsoShape1 As Visio.Shape
    Dim intPropRow2 As Integer
    Set vsoShape1 = Application.ActiveWindow.Page.Shapes.ItemFromID(1)
    intPropRow2 = 9
    vsoShape1.CellsSRC(visSectionProp, intPropRow2, visCustPropsValue).Formula = strOP
    Application.EndUndoScope UndoScopeID1, True
'    Application.ActiveWindow.Windows.ItemFromID(visWinIDCustProp).Close

End Sub


И ещё один вопрос. Как лучше перебирать "Custom Properties", если мне нужно их заполнить, но не все, а выборочно?

Заранее благодарю!

Tumanov

Russia
1198 Posts

Posted - 05/15/2008 :  18:05:53
1. Не надо это обходить. Такой уж в Visio порядок. При записи строки в ячейку приходится добавлять кавычки. А при чтении - удалять.
На самом деле они, конечно, не тройные. Вот такая запись эквивалентна Вашей.
s = "текст строки"
vsoShape1.CellsSRC(visSectionProp, intPropRow2, visCustPropsValue).Formula = Chr(34) & s & Chr(34)
2. Второй вопрос не понятен. Вы же пишете intPropRow2 = 9. Это и есть выбор нужной строки. Почему это не устраивает?
Ну, можно еще присвоить им имена и обращаться через Cells. Например, так
vsoShape1.Cells("Prop.Cost").Formula = Chr(34) & s & Chr(34)
Go to Top of Page

VladimirALenin

5 Posts

Posted - 05/16/2008 :  08:45:55
Я не понимаю , почему если вместо

Dim strOP As String
strOP = "OPISANIE"

у меня будет

Dim intOP As Integer
intOP= 1234

то, данные вводятся без каких-либо проблем, вопросов. Т.е. в соответствующем свойстве сразу будет число 1234.

Tumanov, спасибо за ответы!
И отдельное огромное спасибо за Ваши статьи об автоматизации VISIO.
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)