Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 27.08.2012, 13:35   #1
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию поместить Текст в ячейку таблицы

Итак
1. есть ячейка (cell) таблицы (Table) с фиксированными размерами (height width).
2. Есть место для текcта (Range) в данной ячейке.
3. Есть некий текст (строка) все время разный который при заданных значения font size иногда не помещается в ячейке.
Код:
  Range.Text:='ура';  все прекрасно помещается
  Range.Text:='детям пора спать'; а вот здесь будет переход на другую строку и вторая строчка не будет видна
  Range.Text:='контрреволюция'; а здесь строчка одна, но слишком длинная
Каким образом программно (допустим в макросе) можно
  • собственно проверить само наличие выхода текста за рамки
  • добиться того, чтобы весь введенный текст стал виден.
Свойство ячейки "вписать текст" (fitText) известно, но не устраивает.
  • при малом тексте (наиболее частый случай) растягивает текст на всю ширину (хотелось бы оставить оригинальный формат)
  • при большом сжимает, но пишет в одну строку (в тоже время простое уменьшение шрифта позволяет уместить текст в несколько строк.
Просто раз и навсегда уменьшить шрифт не хотелось бы, скажем так "из-за проблем с читаемостью".

Видимый путь решения
  1. проверить наличие выхода текста за рамки ячейки
  2. если нет то закончить иначе уменьшить шрифт и повторить п 1.
Буду благодарен за помощь в решении п 1. или подсказку в другом способе решения задачи "поместить текст в отведенные рамки".

P.S. решение нужно для delphi, но проблем с переводом VBA не предвижу.
программа — запись алгоритма на языке понятном транслятору
evg_m вне форума Ответить с цитированием
Старый 28.08.2012, 12:05   #2
Ципихович Эндрю
Старожил
 
Регистрация: 24.01.2011
Сообщений: 3,043
По умолчанию

"вписать текст" (fitText) известно - мне не известно
Код:
Range.Text:='детям пора спать'; а вот здесь будет переход на другую строку и вторая строчка не будет видна
это что за среда - Ворд, Эксель?
Ципихович Эндрю вне форума Ответить с цитированием
Старый 28.08.2012, 14:35   #3
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,526
По умолчанию

to Ципихович Эндрю
Цитата:
"вписать текст" (fitText) известно - мне не известно
Цитата:
FitText Property


True if Microsoft Word visually reduces the size of text typed into a cell so that it fits within the column width. Read/write Boolean.

Remarks

If the FitText property is set to True, the font size of the text is not changed, but the visual width of the characters is adjusted to fit all the typed text into the cell.
Цитата:
это что за среда - Ворд, Эксель?
Word
Код:
Range.Text:='детям пора спать'; а вот здесь будет переход на другую строку и вторая строчка не будет видна
Цитата:
For more information about working with Range objects, see Working with Range Objects.
Цитата:
P.S. решение нужно для delphi, но проблем с переводом VBA не предвижу.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 28.08.2012 в 14:40.
evg_m вне форума Ответить с цитированием
Старый 29.08.2012, 09:52   #4
Вождь
Форумчанин
 
Аватар для Вождь
 
Регистрация: 29.09.2008
Сообщений: 378
По умолчанию

Цитата:
Сообщение от evg_m Посмотреть сообщение
...нужно для delphi, но проблем с переводом VBA не предвижу.
Вы для Word пишите или это абстрактная таблица? Если последнее, а вам ответят как для Word, то я вижу очень большие проблемы с "переводом" Короче, объектная модель какая?
Макросы на заказ и готовый пакет - http://mtdmacro.ru/
Вождь вне форума Ответить с цитированием
Старый 11.01.2013, 10:07   #5
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

evg_m, в этой теме приводится способ определения, сколько строк текста в ячейке:
http://programmersforum.ru/showthread.php?t=223695
Скрипт вне форума Ответить с цитированием
Старый 11.01.2013, 10:08   #6
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

Можно программно добавлять текст по одному символу в ячейку и когда следующий символ перейдёт на следующую строку в ячейке, то отменить добавление символа и остановить добавление символов.
Скрипт вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Текст попал не в ту ячейку shevron HTML и CSS 4 22.10.2010 19:41
Поместить число как текст в ячейку Gawwws Microsoft Office Excel 1 27.01.2010 20:33
Как в TEdit поместить текст из файла? DimOn4Ik Общие вопросы Delphi 6 23.01.2010 22:27
Как извлечь слово из текстовой ячейки по заданному шаблону и поместить в соседнюю ячейку? Aleox Microsoft Office Excel 4 27.11.2009 19:58
В ячейку добавить текст Romuald Microsoft Office Excel 2 13.02.2009 15:45