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

Форум по вопросам применения и программирования в Visio
Текущее время: 23 сен 2019, 22:16

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


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


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



Начать новую тему Ответить на тему  [ Сообщений: 53 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Re: Shape с текстовым полем более одного
СообщениеДобавлено: 22 май 2019, 13:51 
Не в сети
Бывалый
Аватара пользователя

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

Добавить очки репутацииУменьшить очки репутации
TheHeat писал(а):
П.С. Недоразвитый Visio, как и все у мелкомягких
дык существует же масса альтернатив, зачем так себя мучить то ? :wall:


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Shape с текстовым полем более одного
СообщениеДобавлено: 22 май 2019, 13:56 
Не в сети
Бывалый

Зарегистрирован: 05 апр 2019, 12:47
Сообщений: 103
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Евгени писал(а):
TheHeat писал(а):
П.С. Недоразвитый Visio, как и все у мелкомягких
дык существует же масса альтернатив, зачем так себя мучить то ? :wall:

Вы думаете я курсовую работу делаю или развлекаюсь? На предприятиях как правило всегда MS Office


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Shape с текстовым полем более одного
СообщениеДобавлено: 22 май 2019, 14:05 
Не в сети
Бывалый
Аватара пользователя

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

Добавить очки репутацииУменьшить очки репутации
TheHeat писал(а):
На предприятиях как правило всегда MS Office
1. Смотря что за предприятия ?
2. MS Visio приобретается ВСЕГДА ОТДЕЛЬНО от MS Office !


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Shape с текстовым полем более одного
СообщениеДобавлено: 23 май 2019, 11:42 
Не в сети
Бывалый

Зарегистрирован: 05 апр 2019, 12:47
Сообщений: 103
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Товарищи, есть какой нибудь способ исключить ошибку в написании пути к шейпу, не выполняя поиск по всем шейпам на ссылаемой странице?

Код:
ActiveWindow.Selection.PrimaryItem.CellsSRC(visSectionTextField, 0, visFieldCell).FormulaU = "shapetext(Pages[" & copyPageName & "]!Sheet." & copyShapeID & "!thetext)"


Дело в том, что я беру copyShapeID из имени фигуры, потому что макрос вызывается с помощью Events/EventDrop. Но если на странице куда вставляю уже есть такое имя, то ID меняется и код выдает ошибку, так как на ссылаемой странице нет такого шейпа.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Shape с текстовым полем более одного
СообщениеДобавлено: 23 май 2019, 11:52 
Не в сети
Content manager

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3685
Откуда: оттуда
Использую Visio c: 1998
Отрасль: -
Должность: Безработный
Уровнь квалификации: Ниже нуля
TheHeat писал(а):
Дело в том, что я беру copyShapeID из имени фигуры, потому что макрос вызывается с помощью Events/EventDrop. Но если на странице куда вставляю уже есть такое имя, то ID меняется и код выдает ошибку, так как на ссылаемой странице нет такого шейпа.
copyShapeID относится к какой фигуре существующей или вновь вставляемой ?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Shape с текстовым полем более одного
СообщениеДобавлено: 23 май 2019, 12:02 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 1479
Очков репутации: 100597

Добавить очки репутацииУменьшить очки репутации
Цитата:
Но если на странице куда вставляю уже есть такое имя, то ID меняется и код выдает ошибку

Что именно Вы вставляете - копируете шейп? Можно немного поподробнее?
Возможно, ошибка в самом подходе и Вы изобретаете новый путь там, где существуют более удобные.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Shape с текстовым полем более одного
СообщениеДобавлено: 23 май 2019, 12:34 
Не в сети
Бывалый

Зарегистрирован: 05 апр 2019, 12:47
Сообщений: 103
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
TheHeat писал(а):
Дело в том, что я беру copyShapeID из имени фигуры, потому что макрос вызывается с помощью Events/EventDrop. Но если на странице куда вставляю уже есть такое имя, то ID меняется и код выдает ошибку, так как на ссылаемой странице нет такого шейпа.
copyShapeID относится к какой фигуре существующей или вновь вставляемой ?

От выделенного после вставки. Events/EventDrop же не знает откуда скопирован шейп.

Я так понимаю мой вопрос опять про Try функцию, которой нет. Просто я подумал, что можно как-то в свойствах shapetext() исключение прописать.

П.С. Кстати я уже сделал поиском фигуры на ссылаемой странице.

П.С.С. Еще одна схожая неприятная особенность обнаружена при переименовании vss. Перестают работать все макросы через runmacro(). Подозреваю, что опять NameU отличается от Name.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Shape с текстовым полем более одного
СообщениеДобавлено: 23 май 2019, 12:43 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 1479
Очков репутации: 100597

Добавить очки репутацииУменьшить очки репутации
Цитата:
Подозреваю, что опять NameU отличается от Name.

NameU затем и ввели, чтобы обеспечить такую работу :)
Может быть Вам имеет смысл не переименовывать NameU, а просто использовать Name? Если уж так необходимы локальные имена и Вы не боитесь с ними работать.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Shape с текстовым полем более одного
СообщениеДобавлено: 23 май 2019, 12:56 
Не в сети
Бывалый

Зарегистрирован: 05 апр 2019, 12:47
Сообщений: 103
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Tumanov писал(а):
Цитата:
Может быть Вам имеет смысл не переименовывать NameU, а просто использовать Name? Если уж так необходимы локальные имена и Вы не боитесь с ними работать.

Это как?
Код:
Events/EventDrop = RUNMACRO("Module1.ShapeAdded","v400")


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Shape с текстовым полем более одного
СообщениеДобавлено: 23 май 2019, 13:00 
Не в сети
Content manager

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3685
Откуда: оттуда
Использую Visio c: 1998
Отрасль: -
Должность: Безработный
Уровнь квалификации: Ниже нуля
TheHeat писал(а):
От выделенного после вставки. Events/EventDrop же не знает откуда скопирован шейп.
выделенный после вставки шейп должен иметь copyShapeID, и вы ему же в поле хотите записать его же текст ?
Изображение
в чем глобальный метафизический смысл сего действа ? или я знову чего то не догнал ! :wall:
TheHeat писал(а):
Просто я подумал, что можно как-то в свойствах shapetext() исключение прописать.
это функция shapesheet с одним параметром ! какие там исключения могут быть ?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Shape с текстовым полем более одного
СообщениеДобавлено: 23 май 2019, 13:23 
Не в сети
Бывалый
Аватара пользователя

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

Добавить очки репутацииУменьшить очки репутации
это
Surrogate писал(а):
выделенный после вставки шейп
может имеется в виду не активный шейп, который является выделенным после вставки. а другой который пользователь еще когда-нибудь выделит ?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Shape с текстовым полем более одного
СообщениеДобавлено: 23 май 2019, 13:23 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 1479
Очков репутации: 100597

Добавить очки репутацииУменьшить очки репутации
Цитата:
Это как?
Код:
Events/EventDrop = RUNMACRO("Module1.ShapeAdded","v400")

Это не здесь. Это только в тех случаях, где существуют NameU и Name.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Shape с текстовым полем более одного
СообщениеДобавлено: 23 май 2019, 13:44 
Не в сети
Content manager

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3685
Откуда: оттуда
Использую Visio c: 1998
Отрасль: -
Должность: Безработный
Уровнь квалификации: Ниже нуля
Евгени писал(а):
может имеется в виду
на этом форуме есть вечные темы: семимильный офф-топ и телепатия 90lvl ! бороться с этим не возможно :shock:


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Shape с текстовым полем более одного
СообщениеДобавлено: 23 май 2019, 14:36 
Не в сети
Бывалый

Зарегистрирован: 05 апр 2019, 12:47
Сообщений: 103
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
TheHeat писал(а):
От выделенного после вставки. Events/EventDrop же не знает откуда скопирован шейп.
выделенный после вставки шейп должен иметь copyShapeID, и вы ему же в поле хотите записать его же текст ?
Изображение
в чем глобальный метафизический смысл сего действа ? или я знову чего то не догнал ! :wall:

copyShapeID это переменная, которая формируется из имени выделенной вставленной фигуры. Используется для формирования ссылки на скопированную фигуру на другой странице. Если на странице куда всавляешь уже есть такой шейп, то имя его меняется во время вставки и соответственно copyShapeID уже нельзя использовать.

В общем вопрос то на самом деле не об этом был, поэтому не разжевывал. Перефразирую: как убрать ошибку в shapetext() при неправильно прописанном пути к фигуре не проверяя ее существование?

Surrogate писал(а):
это функция shapesheet с одним параметром ! какие там исключения могут быть ?

а вот здесь?
Код:
CellsSRC(visSectionTextField, 0, visFieldCell).FormulaU = shapetext(*****)"


или здесь?
Код:
.Characters.AddCustomFieldU "shapetext(*****)", visFmtNumGenNoUnits


Последний раз редактировалось TheHeat 23 май 2019, 14:49, всего редактировалось 1 раз.

Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Shape с текстовым полем более одного
СообщениеДобавлено: 23 май 2019, 14:48 
Не в сети
Content manager

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3685
Откуда: оттуда
Использую Visio c: 1998
Отрасль: -
Должность: Безработный
Уровнь квалификации: Ниже нуля
TheHeat писал(а):
как убрать ошибку в shapetext() при неправильно прописанном пути к фигуре не проверяя ее существование?
Ответ: никак, ядро Visio не позволит вам прописать в ячейку формулу на несуществующую страницу/фигуру/ячейку !
проверить все равно придется.
TheHeat писал(а):
Код:
.Characters.AddCustomFieldU "shapetext(0)", visFmtNumGenNoUnits
такая формула конечно пропишется, но значение в ней будет пустым !
Изображение
TheHeat писал(а):
Код:
.Characters.AddCustomFieldU "shapetext(*****)", visFmtNumGenNoUnits
а вот такое не пропишется


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Shape с текстовым полем более одного
СообщениеДобавлено: 23 май 2019, 15:12 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 1479
Очков репутации: 100597

Добавить очки репутацииУменьшить очки репутации
Цитата:
проверить все равно придется.

Или обработать ошибку и продолжить выполнение.
Я не понял, почему "Try" считается совершенством, а "On Error..." игнорируется.


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Shape с текстовым полем более одного
СообщениеДобавлено: 23 май 2019, 15:14 
Не в сети
Бывалый

Зарегистрирован: 05 апр 2019, 12:47
Сообщений: 103
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
блин, надо было вот так написать, чтобы понятнее было
Код:
CellsSRC(visSectionTextField, 0, visFieldCell).FormulaU = shapetext(Pages[Имя_Страницы]!Sheet.ID_фигуры!thetext)"
Tumanov писал(а):
Цитата:
проверить все равно придется.

Или обработать ошибку и продолжить выполнение.
Я не понял, почему "Try" считается совершенством, а "On Error..." игнорируется.
Как обработать? Не хотелось бы чтобы у конечного пользователя вылезала непонятная ошибка VBA. Это действительно важно, так как уже не в первый раз сталкиваюсь с подобной проблемой, в которой ради msgbox с сообщением об ошибке приходится городить немаленькие алгоритмы предотвращения ошибки, хотя меня бы устроил простой пропуск неосуществимой операции.
П.С. Простите за оффтоп пожалуйста.

П.С.С. Пока я писал ответ вы уже дали подсказку с On Error GoTo. Спасибо. Если кто не понял, я всего месяц занимаюсь VBA и многого не знаю и не могу найти.


Последний раз редактировалось TheHeat 23 май 2019, 15:33, всего редактировалось 1 раз.

Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Shape с текстовым полем более одного
СообщениеДобавлено: 23 май 2019, 15:21 
Не в сети
Content manager

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3685
Откуда: оттуда
Использую Visio c: 1998
Отрасль: -
Должность: Безработный
Уровнь квалификации: Ниже нуля
Tumanov писал(а):
Я не понял, почему "Try" считается совершенством, а "On Error..." игнорируется.
а я не понял зачем для данной задачи используются такие несовершенные инструменты:
1. MS Visio
TheHeat писал(а):
П.С. Недоразвитый Visio, как и все у мелкомягких
2. VBA
TheHeat в сообщении #13507 писал(а):
Как всетаки повесить на данную операцию что-то типа Try?

Дополнено позднее:
TheHeat писал(а):
Цитата:
CellsSRC(visSectionTextField, 0, visFieldCell).FormulaU = shapetext(Pages[Имя_Страницы]!Sheet.ID_фигуры!thetext)"
кавычку упустили :(


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Shape с текстовым полем более одного
СообщениеДобавлено: 23 май 2019, 15:43 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 1479
Очков репутации: 100597

Добавить очки репутацииУменьшить очки репутации
Цитата:
а я не понял зачем для данной задачи используются такие несовершенные инструменты:
1. MS Visio

Таки Вы разобрались с задачей и считаете, что в рамках Visio и VBA она не решается?
Или что выгоднее для решения этой задачи установить пользователям данного предприятия еще один программный продукт и научить с ним работать?


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Shape с текстовым полем более одного
СообщениеДобавлено: 23 май 2019, 15:45 
Не в сети
Administrator

Зарегистрирован: 30 авг 2009, 11:02
Сообщений: 1479
Очков репутации: 100597

Добавить очки репутацииУменьшить очки репутации
Цитата:
Пока я писал ответ вы уже дали подсказку с On Error GoTo.

Иногда эффективнее бывает On Error Resume Next


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

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



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

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


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

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