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

Форум по вопросам применения и программирования в Visio
Текущее время: 29 мар 2024, 15:20

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


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


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

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



Начать новую тему Ответить на тему  [ Сообщений: 97 ]  На страницу Пред.  1, 2, 3, 4, 5
Автор Сообщение
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 25 янв 2022, 14:51 
Не в сети
Administrator

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

Добавить очки репутацииУменьшить очки репутации
А еще есть такая штука, как RegExp
Код:
Sub r()
    s = "k-s12gh"
    Dim re As RegExp
    Set re = New RegExp
    re.Global = True
    re.Pattern = "[\D]"
    a = re.Replace(s, "")
    Debug.Print a
End Sub

Один оператор Replace из строки "k-s12gh" выберет только "12". (Удалит все не цифры)
RegExp = Microsoft VBScript Regular Expressions


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

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

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


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

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

Добавить очки репутацииУменьшить очки репутации
Ну вообще-то, это для более сложных случаев... Но тут уже 5 страниц наговорили и, как я понимаю, в основном насчет выделения числа из строки.
Так для RegExp в данном случае нужно только помнить, что паттерн [\D] означает "не цифра".
И тогда a = re.Replace(s, "") заменит все не цифры на пустышки, то есть удалит из исходной строки s.
----
Это не реклама и даже не рекомендация :) Просто упоминание альтернативы для парсинга.


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
Tumanov писал(а):
Так для RegExp в данном случае нужно только помнить, что паттерн [\D] означает "не цифра".
И тогда a = re.Replace(s, "") заменит все не цифры на пустышки, то есть удалит из исходной строки s.
нам нужно не затереть все не-циферки в тексте. а найти позицию где идут циферки и воткнуть там поле
Tumanov писал(а):
Просто упоминание альтернативы для парсинга.
хорошая альтернатива

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 25 янв 2022, 15:34 
Не в сети
Новичок

Зарегистрирован: 22 янв 2022, 21:35
Сообщений: 37
Использую Visio c: 2020
Отрасль: Электроэнергетика
Должность: Инженер РЗА
Уровнь квалификации: Язык проКраммирования - именно так
Очков репутации: 0

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

вместо не-циферок тоже надо вставить поле (с этими же не-циферками)
Я пока застопорился на этапе переноса текста в ячейку данных, оба варианта дают ошибку "An exception occurred"
.Cells("ShapeNumber").FormulaU = shp.Text
.CellsSRC(visSectionProp, 0, visCustPropsValue).FormulaU = shp.Text


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
ЮрийR писал(а):
пока застопорился на этапе переноса текста в ячейку данных, оба варианта дают ошибку "An exception occurred"
.Cells("ShapeNumber").FormulaU = shp.Text
Shp в начале строки потеряли

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 25 янв 2022, 16:07 
Не в сети
Новичок

Зарегистрирован: 22 янв 2022, 21:35
Сообщений: 37
Использую Visio c: 2020
Отрасль: Электроэнергетика
Должность: Инженер РЗА
Уровнь квалификации: Язык проКраммирования - именно так
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
Shp в начале строки потеряли

да как бы вроде нет
Содержимое спрятано под спойлер ↓
Спойлер:
Вложение:
1.png
1.png [ 39.2 Кб | Просмотров: 296 ]

И вообще очень странно работает - вроде бы секцию добавляет, а в таблице свойств она не появляется... Опять двадцать пять(

Содержимое спрятано под спойлер ↓
Спойлер:
Вложение:
2.png
2.png [ 11.34 Кб | Просмотров: 297 ]


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

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

Со слепу на экране мобилки не разглядел! В какую ячейку хотите писать она называется
.Cells("Prop.ShapeNumber").FormulaU = shp.Text

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 25 янв 2022, 16:38 
Не в сети
Новичок

Зарегистрирован: 22 янв 2022, 21:35
Сообщений: 37
Использую Visio c: 2020
Отрасль: Электроэнергетика
Должность: Инженер РЗА
Уровнь квалификации: Язык проКраммирования - именно так
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
Prop.ShapeNumber

:oops:
Всё равно ошибка! Похоже она потому что на самом деле не создается ни секция ни ячейки! Думаю опять visio выкабенивается, буду после работы на домашнем опять пробовать...


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

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

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 25 янв 2022, 16:48 
Не в сети
Новичок

Зарегистрирован: 22 янв 2022, 21:35
Сообщений: 37
Использую Visio c: 2020
Отрасль: Электроэнергетика
Должность: Инженер РЗА
Уровнь квалификации: Язык проКраммирования - именно так
Очков репутации: 0

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

1 (одна) штука
И второй раз выдаётся ошибка уже на этапе добавления секции, т.е. типа она уже есть, а в таблице - нету.. вот :?


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

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

--- вы должны быть зарегистрированным пользователем, чтобы прочитать это содержимое ---

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 25 янв 2022, 17:13 
Не в сети
Новичок

Зарегистрирован: 22 янв 2022, 21:35
Сообщений: 37
Использую Visio c: 2020
Отрасль: Электроэнергетика
Должность: Инженер РЗА
Уровнь квалификации: Язык проКраммирования - именно так
Очков репутации: 0

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

:D
Я сделал экспорт кода, создал новый файл, кинул туда такую же фигуру, сделал импорт кода - работает... НУ я даже не удивился


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 25 янв 2022, 17:15 
Не в сети
Новичок

Зарегистрирован: 22 янв 2022, 21:35
Сообщений: 37
Использую Visio c: 2020
Отрасль: Электроэнергетика
Должность: Инженер РЗА
Уровнь квалификации: Язык проКраммирования - именно так
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Ааа есть нюанс, там у меня комментарии были внутри shp
походу нельзя
Итак новый вопрос, как пропустить существующую секцию и (или) ячейки чтобы не вываливалась ошибка?


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 5043
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Интеграция системных интеграторов
Должность: Дизайнер по оформлению документации
Уровнь квалификации: Форматирование документов MS Word
ЮрийR писал(а):
Итак новый вопрос
может уже пора один вопрос - одна тема. а то уже нафлудили мама не горюй
Tumanov писал(а):
Но тут уже 5 страниц наговорили и, как я понимаю, в основном насчет выделения числа из строки.
мы тут еще 40 бочек арестантов наговорим :wall:
ЮрийR писал(а):
как пропустить существующую секцию и (или) ячейки
Shishok в сообщении #11325 писал(а):
У объекта Shape есть свойство SectionExists. Именно для этого.
А еще RowExists и CellExists/CellExistsU.
вам нужно использовать CellExists/CellExistsU для ячеек и SectionExists для секций!
примеры были на форуме неоднократно. но тупой поиск ничего не может найти

Дополнено позднее:
Цитата:
' https://surrogate-tm.github.io/own/macro/vsd_CheckSectionCellExists.txt
Sub vsd_CheckSectionCellExists()
'For Each mst In sten.Masters
Set shp = ActiveWindow.Selection(1) ' mst.Shapes.Item(1)
If shp.SectionExists(visSectionUser, VisExistsFlags.visExistsAnywhere) Then MsgBox "!"
' Check that the Category cell exists
If shp.CellExists("User.Shapeclass", VisExistsFlags.visExistsAnywhere) Then MsgBox "!!"
' The default List Separator is ;
End Sub

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 25 янв 2022, 20:19 
Не в сети
Ветеран

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

Добавить очки репутацииУменьшить очки репутации
Цитата:
Старенький макрос раскопал. Там есть нюанс. Либо все время копировать/дублировать шейпы с листа, либо все время тащить из трафарета. А то нумерация сбивается

Я это уже тогда пофиксил. Сейчас проверил. Нормально работает.

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


Пожаловаться на это сообщение
Вернуться к началу
 Профиль  
Ответить с цитатой  
 Заголовок сообщения: Re: Автонумерация тескта
СообщениеДобавлено: 25 янв 2022, 21:41 
Не в сети
Ветеран

Зарегистрирован: 26 авг 2019, 21:07
Сообщений: 267
Использую Visio c: 2019
Очков репутации: 11

Добавить очки репутацииУменьшить очки репутации
Surrogate писал(а):
сразу понял по стилю, что это Shishok ! Автонумерация обозначений шейпов
Спасибо! Код исправил.

_________________
САПР-АСУ
https://github.com/gtfox/
YouTube


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

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



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

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


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

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