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

Форум по вопросам применения и программирования в Visio
Текущее время: 24 июн 2017, 09:16

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


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


Размещение файлов в формате vsd (а не vsdx/vsdm), увеличивает вероятность ответа стремительным домкратом !!!



Начать новую тему Ответить на тему  [ Сообщений: 9 ] 
Автор Сообщение
 Заголовок сообщения: подстрочные символы
СообщениеДобавлено: 02 дек 2016, 11:08 
Не в сети
Новичок

Зарегистрирован: 25 мар 2016, 17:19
Сообщений: 21
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
люди, наверное я многого не понимаю... но есть такая задача - надо в строке несколько символов сделать подстрочными. весь интернет облазил, так и не понял как пользоваться функцией .subscript=true
например, надо в тексте шейпа SH.text заменить слово "220В" на "220В" нижнем индексе, а остальное оставить как есть.


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

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

Добавить очки репутацииУменьшить очки репутации
SH.text - это сильно обгрызанная веточка доступа к тексту, через которую выполняются самые примитивные операции.
Настоящая работа с текстом ведется через секцию Characters. Вот ее и надо смотреть в справке.


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3330
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
Tumanov писал(а):
Настоящая работа с текстом ведется через секцию Characters. Вот ее и надо смотреть в справке.
Код:
vsoCharacters1.CharProps(visCharacterPos) = 0# ' Normal
vsoCharacters1.CharProps(visCharacterPos) = 1# ' SuperScript
vsoCharacters1.CharProps(visCharacterPos) = 2# ' SubScript


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

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

Добавить очки репутацииУменьшить очки репутации
Код:
    Dim vsoCharacters1 As Visio.Characters
    Set vsoCharacters1 = Application.ActiveWindow.Page.Shapes.ItemFromID(1).Characters
    vsoCharacters1.Begin = 4
    vsoCharacters1.End = 12
    vsoCharacters1.CharProps(visCharacterPos) = 2#

Вот, например, расшифровываем запись макроса.
ItemFromID(1) дает нам какой-то шейп.
Далее методом Characters принимаем его текст.
Устанавливаем начало и конец фрагмента, в котором будем менять свойство.
И устанавливаем для него CharProps, которое visCharacterPos в значение 2#.


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

Зарегистрирован: 25 мар 2016, 17:19
Сообщений: 21
Использую Visio c: 2013
Очков репутации: 0

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


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

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

Добавить очки репутацииУменьшить очки репутации
Тяжело воспринимается формулировка...
Может нужно вот это - Width=TEXTWIDTH(TheText)


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

Зарегистрирован: 25 мар 2016, 17:19
Сообщений: 21
Использую Visio c: 2013
Очков репутации: 0

Добавить очки репутацииУменьшить очки репутации
Tumanov писал(а):
Тяжело воспринимается формулировка...
Может нужно вот это - Width=TEXTWIDTH(TheText)

ну... сейчас перелазил много страниц, так и не понял, как всё-таки этой функцией изменить ширину ((( а вообще - как ширину у шейпа поменять макросом? а потом попробую докрутить.


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

Зарегистрирован: 02 окт 2009, 01:01
Сообщений: 3330
Откуда: оттуда
Использую Visio c: 1998
Отрасль: Связь
Должность: Бывший проектировщик
Уровнь квалификации: ShapeSheet, VBA
эту формулу надо в shapesheet шейпа в ячейке width прописать !
Код:
sh.CellsSRC(visSectionObject, visRowXFormOut, visXFormWidth).FormulaU = "TEXTWIDTH(TheText)"


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

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

Добавить очки репутацииУменьшить очки репутации
Ну, тут опять же два варианта...
Если шейп всегда должен обладать таким свойством, то можно формулу вписать в шейп-лист ручками. В ячейку Width написать =TEXTWIDTH(TheText)
И шейп сохранить в качестве мастера. Тогда все копии этого мастера будут обладать этим свойством.
А если нужно, чтобы такое свойство появлялось в каком-то произвольном шейпе в определенное время, то тогда да, нужно формулу в эту ячейку прописывать макросом. Это уже, как написал Surrogate выше.


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

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



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

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


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

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