Вписанный текст
Модератор: Naeel Maqsudov
Как средствами VB(A) вписать текст в ячейку таблицы в Worde?
Попробуй что - нибудь вроде
Код: Выделить всё
Sub Макрос()
ThisDocument.Tables.Item(1).Cell(1, 1).Range.Characters.Item(1) = "текст"
End Sub
Я неправильно сформулировал вопрос. Мне надо, чтобы текст вписался в имеющуюся таблицу и не раздвинул ячейку ни вниз, ни вбок, т.е. немного сжался (если в ячейке больше единиц, то все нормально, а если широкие цифры и их на две больше, не влезает).
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
В Excel у ячеек есть такое свойство форматирования, которое заставляет любой текст располагаться в ячейке в одну строку "как получится". Т.е. с автоматическим уменьшением размера шрифта. Если я правильно понял, то хочется сделать то же самое....
Как обратиться к ячейке в VBA Вам уже расказали выше.
Так вот у объекта Cell есть свойства типа Height, Width.
Если размеры ячейки известны, то макрос должен в цикле уменьшать размер шрифта до тех пор, пока ячейка не сожмется до нужного размера. Уменьшать размер шрифта можно не по 1 пункту, а по, например, 0.5
Кроме того в отличие от Excel Word умеет изменять расстояние между буквами. Можно попробовать использовать вложеный цикл. В наружнем уменьшать размер, а во внутреннем пробегать значения межсимвольного интервала, например, от 0 до -5.
Так как у ячеек размеры разные, то можно сделать еще один макрос, который "запомнит" размеры ячейки в глобальных переменных.
Т.е. работа с макросами будет выглядеть примерно так.
- становимся в пустую ячейку
- запускаем макрос, запоминающий размеры
- вводим текст (при этом все становится плохо)
- запускаем другой макрос, который все исправляет
Это конечно извращение, но может кто-то придумает как это сделать лучше....
Как обратиться к ячейке в VBA Вам уже расказали выше.
Так вот у объекта Cell есть свойства типа Height, Width.
Если размеры ячейки известны, то макрос должен в цикле уменьшать размер шрифта до тех пор, пока ячейка не сожмется до нужного размера. Уменьшать размер шрифта можно не по 1 пункту, а по, например, 0.5
Кроме того в отличие от Excel Word умеет изменять расстояние между буквами. Можно попробовать использовать вложеный цикл. В наружнем уменьшать размер, а во внутреннем пробегать значения межсимвольного интервала, например, от 0 до -5.
Так как у ячеек размеры разные, то можно сделать еще один макрос, который "запомнит" размеры ячейки в глобальных переменных.
Т.е. работа с макросами будет выглядеть примерно так.
- становимся в пустую ячейку
- запускаем макрос, запоминающий размеры
- вводим текст (при этом все становится плохо)
- запускаем другой макрос, который все исправляет
Это конечно извращение, но может кто-то придумает как это сделать лучше....
Спасибо, я придумал, задал в загружаемом файле с таблицей немного сжатый текст в этом столбце. Когда пробовал вписанный текст, то маленький текст растягивался до неприличия. Еще раз всем спасибо. Тему можно закрыть.