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

Форум по вопросам применения и программирования в Visio
Текущее время: 19 мар 2024, 09:06

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


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


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

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



Начать новую тему Ответить на тему  [ Сообщений: 17 ] 
Автор Сообщение
 Заголовок сообщения: Автонумерация обозначений шейпов
СообщениеДобавлено: 01 дек 2014, 01:49 
Не в сети
Ветеран

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

Добавить очки репутацииУменьшить очки репутации
Вот. Старенький макрос раскопал. Там есть нюанс. Либо все время копировать/дублировать шейпы с листа, либо все время тащить из трафарета. А то нумерация сбивается. В свое время так и не смог пофиксить. Visio как-то различает событие добавления шейпа из стенсила и событие копирования/дублирования. А я не смог различить :cry: .
Вложение:
Комментарий к файлу: Не понял почему файл без названия?
.7z [33.58 Кб]
Скачиваний: 217

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация обозначений шейпов
СообщениеДобавлено: 01 дек 2014, 13:35 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5042
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
действительно, RUNMACRO не срабатывает как событие при копировании шейпа. SETF в данной ситуации
работает одинаково при вытаскивании шейпа из стенсила и при копи/пасте.
попробовал вместо RUNMACRO использовать CALLTHIS. не вышло не понял, что там за параметры надо в
шейпшите задавать для его запуска…

чтоб в твоем сообщении появилось название файла нужно, кликнуть по кнопке Вставить в текст сообщения
Изображение

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация обозначений шейпов
СообщениеДобавлено: 01 дек 2014, 17:35 
Не в сети
Ветеран

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

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

Не не, Surrogate, Runmacro срабатывает при копировании и при дублировании тоже(это которое Ctlr+D). Вот вытащи одну фигурку на лист, и копируй ее. Нумерация прекрасно увеличивается.
А вот если все время вытаскивать из стенсила то первый шейп будет например Р1, второй опять Р1, а уже третий и далее нормально перенумеровываются. Но общее количество данных шейпов естественно не совпадает с нумерацией. Вот, только что еще раз попробовал.
Гложет меня мысль - мой косяк! Подумал что из-за того что в стенсиле шейп без номера. Нет, не в этом дело.

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация обозначений шейпов
СообщениеДобавлено: 01 дек 2014, 17:41 
Не в сети
Content manager
Content manager
Аватара пользователя

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

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация обозначений шейпов
СообщениеДобавлено: 01 дек 2014, 18:10 
Не в сети
Ветеран

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

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
у меня при вытаскивании на лист работает так. первые два шейпа имеют номер 1, потом идет увеличение номера на единицу.
при дублировании шейпа выдается правильный номер… т.е. перескакивает через единицу

Ну вот я об этом. Где-то я накосячил. Надо пересмотреть код, он давнишний.
По моему кто-то уже спрашивал, но тем не менее - чем делаешь гифки?

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


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5042
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
я код посмотрел, очень изысканно. но в чем косяк не понял…
а гифки делаю прогой LiceCap

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация обозначений шейпов
СообщениеДобавлено: 01 дек 2014, 18:34 
Не в сети
Ветеран

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

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
я код посмотрел, очень изысканно. но в чем косяк не понял…
а гифки делаю прогой LiceCap

Изысканно? Ну не знаю. Лично мне было немного стыдновато его выкладывать. Разве что писалось это давно.
Но спасибо за оценку. Ха! Только он неправильно работает! :)

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


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

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

Добавить очки репутацииУменьшить очки репутации
Есть еще НЮАНС :wall: Не из области программирования , а что-то из области логической несуразицы!

Пример:
Создаем 5 шейпов от Р1 до Р5

For i=1 to 4
____Удаляем шейп с обозначением меньше Р5
____Копируем любой из оставшихся шейпов
Next

Результат = все шейпы с обозначением Р5 :cry:

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


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

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

Добавить очки репутацииУменьшить очки репутации
Короче, я выяснил интересное поведение Visio.
Мой код после вызова из добавляемого шейпа подсчитывает количество шейпов с определенным обозначением на листе. Так вот:

При копировании/дублировании подсчитываются все подходящие по критерию(обозначение) шейпы, включая только что вставленный, откуда и был вызов макроса.
При вытаскивании и бросании шейпа из стенсила, подсчитываются только уже лежащие на листе шейпы, но не бросаемый. Ощущение что код отрабатывается до того как шейп "упал" на лист. Шейпа на листе еще нет, но код спровоцированный этим шейпом уже выполнился. Как-то так.

Вот поэтому идет неправильная нумерация. Или скажем, в сильной степени поэтому. Да, нет! Точно из за этого.
Никто не замечал такого казуса?

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация обозначений шейпов
СообщениеДобавлено: 01 дек 2014, 23:51 
Не в сети
Administrator

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

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация обозначений шейпов
СообщениеДобавлено: 02 дек 2014, 00:58 
Не в сети
Ветеран

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

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

Нет! Я усе выяснил!
А вот это попрошу забыть!
Цитата:
Короче, я выяснил интересное поведение Visio.

Это у меня в мозгах к вечеру интересное поведение :D .
Вот строка где собака порылась:
Код:
(Я там немного переделал - PrDes это строка "Prop.Designation")
If shpObj.CellExistsU(PrDes, 1) Then

А надо:
Код:
If shpObj.CellExistsU(PrDes, 0) Then

Из документации по свойству CellExistsU:
If fExistsLocally is non-zero (True), the CellExists property value is True only if the object contains the cell locally; if the cell is inherited, the CellExists property value is False.
If fExistsLocally is zero (False), the CellExists property value is True if the object either contains or inherits the cell.


В общем когда тащишь из стенсила, свойство Prop.Designation оригинально, а когда копируешь, то это свойство наследуется. Из за этого строка If shpObj.CellExistsU(PrDes, 1) Then с параметром 1 давала неправильное поведение кода.
Вот так подобная невнимательность к мелочам, приводит к замене планов на вечер. ;) . Тем не менее, определенное удовольствие получил. Архив обновил.

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация обозначений шейпов
СообщениеДобавлено: 02 дек 2014, 01:09 
Не в сети
Ветеран

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

Добавить очки репутацииУменьшить очки репутации
Я не могу вложить файл с названием! Поэтому там же:
https://yadi.sk/d/qbpj9WI9d2eqF

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация обозначений шейпов
СообщениеДобавлено: 02 дек 2014, 17:52 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5042
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Digitall в скайпе писал(а):
В visio 2013 на этой строчке тормознулся макрос таблиц.
Код:
ThemeE = ActivePage.ThemeEffect
в модуле MainModule

он выкосил все упоминания о темах из кода и заработало в 2013 ! Передает респект создателю

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация обозначений шейпов
СообщениеДобавлено: 02 дек 2014, 18:42 
Не в сети
Ветеран

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

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
Digitall в скайпе писал(а):
В visio 2013 на этой строчке тормознулся макрос таблиц.
Код:
ThemeE = ActivePage.ThemeEffect
в модуле MainModule

он выкосил все упоминания о темах из кода и заработало в 2013 ! Передает респект создателю

Странно. У меня было мало возможностей проверять код на visio 2013. А теперь и вовсе нет возможности.
А вообще-то в оригинале строка ThemeE = ActivePage.ThemeEffect, выглядит так
Код:
ThemeE = ActivePage.ThemeEffects

С буквой "s" в конце.
Эти фрагменты кода важны только если на листе используются эффекты и цвета тем. И только при создании таблиц. Просто управляющие ячейки немного не Ok будут.


Изображение

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация обозначений шейпов
СообщениеДобавлено: 08 янв 2015, 12:44 
Не в сети
Ветеран

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

Добавить очки репутацииУменьшить очки репутации
Появилась возможность иногда работать в Visio 2013.
Оказывается файлы .vsd открытые в V13, это не то же что файлы .vsdx и .vsdm по крайней мере в плане работы с эффектами тем и цветов.

Вот вкладка Конструктор для .vsd:
Изображение

а вот для того же файла сохраненного в .vsdx:
Изображение

Соответственно код работающий для .vsd, вызывает ошибку для .vsdx и .vsdm.
Объектная модель приложения чуток изменилась. Так что все надо тестировать. (Ваш кэп :) )

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация обозначений шейпов
СообщениеДобавлено: 08 янв 2015, 16:19 
Не в сети
Content manager
Content manager
Аватара пользователя

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5042
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Кэп, а ты уверен что темы главное в данном коде?

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация обозначений шейпов
СообщениеДобавлено: 08 янв 2015, 18:14 
Не в сети
Ветеран

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

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
Кэп, а ты уверен что темы главное в данном коде?

Если ты про заголовок темы, то да, маненько не туды.
Просто я наконец врубился почему у Digitall ошибка появлялась.

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


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

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



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

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


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

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