Страница 1 из 1

Определение длины текста

Добавлено: 25 апр 2005, 12:45
MikeM
Добрый день. Есть вопрос: можно ли определить длину текста в ячейке в пикселях/см/мм, т.е. в какой-то фиксированной величине? Обходные варианты есть, но может есть соотв св-ва. Спасибо.

Добавлено: 26 апр 2005, 09:25
Duncon
Если можно конкретизируйте :)

Добавлено: 26 апр 2005, 10:01
Игорь Акопян
ColumnWidth Property

Returns or sets the width of all columns in the specified range. Read/write Variant.

Remarks
One unit of column width is equal to the width of one character in the Normal style. For proportional fonts, the width of the character 0 (zero) is used.

Use the Width property to return the width of a column in points.

If all columns in the range have the same width, the ColumnWidth property returns the width. If columns in the range have different widths, this property returns Null.


Width Property

Returns or sets an object's width, in points. Read/write Long, except as shown in the following table.

Remarks

The meaning of the Width property depends on the specified object.

Добавлено: 26 апр 2005, 11:19
MikeM
Есть задача - нужно в экселе распечатать файл, но текст, расположенный в разных ячейках на одном ряду, иногда накладывается друг на друга, что не есть хорошо. Чтобы этого избежать, я хочу организовать проверку длины текста в ячейках и в зависимости от результатов делать переносы и др. форматирование. Текст в ячейках разноформатный (длина символов отличается, плюс буквы "Ш","Ж" и др. отличаются от "е", "г" и т.п.), т. е. если я просто подсчитаю кол-во символов в ячейках, то не будет гарантии, что накладок не будет. Автоперенос текста в ячейке по словам не подходит.
По описанию подходит св-во Width, но как его заставить работать не с шириной ячейки, а с текстом в нём ( ширина которого значительно больше ширины ячейки) не знаю.

Добавлено: 27 апр 2005, 09:37
Duncon
Если надо просто растянуть ячейки - автоформат. Но в этом случае распечатать врядле получится из-за длинны. Я так думаю с этим вопросом лучше обратиться к разработчикам... Хотя в настройках вполне может быть такая функция (я не встречал).. Единственный способ решения задать ширину столбцов к примеру по 10 ....
На мой взгляд все это ручная работа на 5 минут и нет проблем...

Добавлено: 27 апр 2005, 10:56
MikeM
Дело в том, что этот xls-файл больших размеров (около 40 000 строк) и создаётся наподобие 1-й формы в 5 строк, что при изменении ширины столбцов увеличит значительно область печати, что в свою очередь увеличит затраты на печать, т.к. она происходит на типографии, в больших объёмах и очень часто. Сейчас устранение подобных накладок так и происходит - вручную...
Может кто-нибудь знает если не ответ, так ссылку, где можно получить ответ. Просмотрел уже почти весь инет - ничего.

Добавлено: 28 апр 2005, 10:22
Duncon
Обратитесь к разработчикам... Или вариант написать свой редактор.
Удачи..

Добавлено: 30 апр 2005, 11:55
Naeel Maqsudov
MikeM, если речь идет о тексте, который располагается в одну строку (т.е. не переносится по словам в ячейках), то для таких ячеек в меню Формат/Ячейки/Выравнивание включите флажок "Автоподбор ширины" Это автоматически будет изменять размер шрифта в ячейках так, чтобы текст таки-поместился в ячейке.
По описанию подходит св-во Width, но как его заставить работать не с шириной ячейки, а с текстом в нём ( ширина которого значительно больше ширины ячейки) не знаю.
Невозможно.
Ширину текста для заданных
* контекста устройства и
* строки текста
вычисляют функции WinAPI

Возможно в VBA есть такая функция (что-то мне сейчас приходит такое на память), но подробнее смогу посмотреть на следующей неделе.