Форум пользователей Visio

Форум по вопросам применения и программирования в Visio
Текущее время: 28 мар 2024, 18:12

Часовой пояс: UTC + 3 часа [ Летнее время ]


Правила форума


При размещении файлов предпочтительным является формат vsd (а не vsdx/vsdm)
Размещая ваши вложения на форуме не используйте имена файлов содержащих кириллицу, в противном случае файл будет иметь имя .<расширение файла> !

Для форматирования ваших сообщений используйте BBCodes, описание используемых на форуме BBCodes.



Начать новую тему Ответить на тему  [ Сообщений: 10 ] 
Автор Сообщение
 Заголовок сообщения: Как добавить переменную в shapesheet документа
СообщениеДобавлено: 28 мар 2016, 12:32 
Не в сети
Новичок

Зарегистрирован: 08 дек 2014, 13:45
Сообщений: 21
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Здравствуйте!

Подскажите знатоки как добавить переменную в shapesheet документа с определенным именем и значением. Мне нужно при закрытии документа обратиться к этой переменной из макроса в открытом стенсиле и в зависимости от его значения выполнить нужное действие.
При записи макроса в visio выдается такое:
Код:
Application.ActiveWindow.Page.PageSheet.OpenSheetWindow
Dim UndoScopeID1 As Long
UndoScopeID1 = Application.BeginUndoScope("Вставить строку")
Application.ActiveWindow.Shape.AddRow visSectionUser, 1, visTagDefault
Application.ActiveWindow.Shape.CellsSRC(visSectionUser, 2, visUserValue).FormulaForceU = "0"
Application.ActiveWindow.Shape.CellsSRC(visSectionUser, 2, visUserPrompt).FormulaForceU = """"""
Application.EndUndoScope UndoScopeID1, True

Application.ActiveWindow.Shape.CellsSRC(visSectionUser, 2, visUserValue).RowNameU = "PDF"

Application.ActiveWindow.Shape.CellsSRC(visSectionUser, 2, visUserValue).FormulaU = "1"

Application.ActiveWindow.Close
но мне это не очень подходит, документ может быть любой, в нем могут быть другие переменные, непонятно с каким именем вставляется строка изначально

Surrogate писал(а):


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как добавить переменную в shapesheet документа
СообщениеДобавлено: 28 мар 2016, 12:50 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
kin, вышеуказанным кодом ты только добавляешь ячейку User.PDF со значением 1, в DocumentSheet
kin писал(а):
Мне нужно при закрытии документа обратиться к этой переменной из макроса в открытом стенсиле и в зависимости от его значения выполнить нужное действие.
kin писал(а):
но мне это не очень подходит, документ может быть любой, в нем могут быть другие переменные, непонятно с каким именем вставляется строка изначально
что, когда и откуда брать я не понял

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как добавить переменную в shapesheet документа
СообщениеДобавлено: 28 мар 2016, 13:27 
Не в сети
Новичок

Зарегистрирован: 08 дек 2014, 13:45
Сообщений: 21
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
kin, вышеуказанным кодом ты только добавляешь ячейку User.PDF со значением 1, в DocumentSheet
kin писал(а):
Мне нужно при закрытии документа обратиться к этой переменной из макроса в открытом стенсиле и в зависимости от его значения выполнить нужное действие.
kin писал(а):
но мне это не очень подходит, документ может быть любой, в нем могут быть другие переменные, непонятно с каким именем вставляется строка изначально
что, когда и откуда брать я не понял


Мне это и нужно в принципе, только этот код не универсален, не для любого документа. В документах где уже есть переменные добавляется одна строка, а переименовывается другая. Мне нужно чтобы прямо со всеми документами работало. Можно ли как нибудь в .AddRow сразу прописать имя переменной и значение


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как добавить переменную в shapesheet документа
СообщениеДобавлено: 28 мар 2016, 14:34 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
kin писал(а):
Мне это и нужно в принципе, только этот код не универсален, не для любого документа. В документах где уже есть переменные добавляется одна строка, а переименовывается другая. Мне нужно чтобы прямо со всеми документами работало. Можно ли как нибудь в .AddRow сразу прописать имя переменной и значение
дружище, хочу тебя огорчить ! победителей теле-шоу "Битва экстрасенсов" среди пользователей форума нет, и даже четвертьфиналистов…
в программировании чётко и ясно сформулированная задача залог успеха!!!
расшифруй более развернуто, что скрывается за этими словами
kin писал(а):
В документах где уже есть переменные добавляется одна строка, а переименовывается другая

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как добавить переменную в shapesheet документа
СообщениеДобавлено: 28 мар 2016, 17:45 
Не в сети
Ветеран

Зарегистрирован: 30 июл 2014, 14:28
Сообщений: 534
Использую Visio c: 2008
Очков репутации: 107

Добавить очки репутацииУменьшить очки репутации
Попробуй вот так:

Код:
Sub Test_AddNamedRow()

    With ActiveDocument.DocumentSheet
        .AddNamedRow visSectionUser, "PDF", visTagDefault
        .Cells("User.PDF.Value") = "1"
        .Cells("User.PDF.Prompt").FormulaU = """Bla-bla"""
    End With

End Sub

_________________
GitHub
Yandex-диск с набором полезных утилит


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как добавить переменную в shapesheet документа
СообщениеДобавлено: 28 мар 2016, 17:56 
Не в сети
Ветеран

Зарегистрирован: 30 июл 2014, 14:28
Сообщений: 534
Использую Visio c: 2008
Очков репутации: 107

Добавить очки репутацииУменьшить очки репутации
А если пограмотнее, то вот так:

Код:
Sub Test_AddNamedRow()
Dim RowName As String

RowName = "PDF"

    With ActiveDocument.DocumentSheet
        .AddNamedRow visSectionUser, RowName, visTagDefault
        .Cells("User." & RowName & ".Value") = "1"
        .Cells("User." & RowName & ".Prompt").FormulaU = """Bla-bla"""
    End With

End Sub

_________________
GitHub
Yandex-диск с набором полезных утилит


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как добавить переменную в shapesheet документа
СообщениеДобавлено: 28 мар 2016, 18:37 
Не в сети
Бывалый
Аватара пользователя

Зарегистрирован: 12 май 2012, 15:16
Сообщений: 122
Очков репутации: 13

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
победителей теле-шоу "Битва экстрасенсов" среди пользователей форума нет, и даже четвертьфиналистов…
испытаю свои сверх-возможности
Код:
Sub Test_AddNamedRow()
Dim RowName As String

RowName = "PDF"

    With ActiveDocument.DocumentSheet
    ' проверка наличия User.PDF в TheDoc
    ' если нет добавляем строку user.pdf
    ' если есть переписываем ее значение
    If Not (.CellExists("user." & RowName, visExistsAnywhere)) Then .AddNamedRow visSectionUser, RowName, visTagDefault
        .Cells("User." & RowName & ".Value") = "1"
        .Cells("User." & RowName & ".Prompt").FormulaU = """Bla-bla"""
    End With

End Sub


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как добавить переменную в shapesheet документа
СообщениеДобавлено: 29 мар 2016, 08:29 
Не в сети
Новичок

Зарегистрирован: 08 дек 2014, 13:45
Сообщений: 21
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Спасибо всем!) Surrogate а вы говорите нет победителей :D


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как добавить переменную в shapesheet документа
СообщениеДобавлено: 29 мар 2016, 08:34 
Не в сети
Новичок

Зарегистрирован: 08 дек 2014, 13:45
Сообщений: 21
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Все работает как надо. Еще раз спасибо


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Как добавить переменную в shapesheet документа
СообщениеДобавлено: 29 мар 2016, 08:38 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
kin, вы хоть назовите победителя !
Оффтоп:
почему не заходишь со своей учетки?
Surrogate в сообщении #2680 писал(а):
Уважаемые пользователи, которые забыли пароль к своей учетной записи! Если вы хотите восстановить

Surrogate писал(а):

_________________
База знаний ShapeSheet
Мой Youtube-канал @surrogate-tm
Мои трафареты


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 10 ] 

Часовой пояс: UTC + 3 часа [ Летнее время ]



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


Вы можете начинать темы
Вы можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Вы можете создать форум бесплатно PHPBB3 на Getbb.Ru, Также возможно сделать готовый форум PHPBB2 на Mybb2.ru
Русская поддержка phpBB