Вписанный текст

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Ответить
kminas
Сообщения: 108
Зарегистрирован: 06 янв 2006, 00:06
Откуда: Ростов-на-Дону

Как средствами VB(A) вписать текст в ячейку таблицы в Worde?
treider
Сообщения: 57
Зарегистрирован: 01 сен 2005, 13:29
Откуда: Алматы
Контактная информация:

Попробуй что - нибудь вроде

Код: Выделить всё

Sub Макрос()
    ThisDocument.Tables.Item(1).Cell(1, 1).Range.Characters.Item(1) = "текст"
End Sub
kminas
Сообщения: 108
Зарегистрирован: 06 янв 2006, 00:06
Откуда: Ростов-на-Дону

Я неправильно сформулировал вопрос. Мне надо, чтобы текст вписался в имеющуюся таблицу и не раздвинул ячейку ни вниз, ни вбок, т.е. немного сжался (если в ячейке больше единиц, то все нормально, а если широкие цифры и их на две больше, не влезает).
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

В Excel у ячеек есть такое свойство форматирования, которое заставляет любой текст располагаться в ячейке в одну строку "как получится". Т.е. с автоматическим уменьшением размера шрифта. Если я правильно понял, то хочется сделать то же самое....

Как обратиться к ячейке в VBA Вам уже расказали выше.
Так вот у объекта Cell есть свойства типа Height, Width.
Если размеры ячейки известны, то макрос должен в цикле уменьшать размер шрифта до тех пор, пока ячейка не сожмется до нужного размера. Уменьшать размер шрифта можно не по 1 пункту, а по, например, 0.5

Кроме того в отличие от Excel Word умеет изменять расстояние между буквами. Можно попробовать использовать вложеный цикл. В наружнем уменьшать размер, а во внутреннем пробегать значения межсимвольного интервала, например, от 0 до -5.

Так как у ячеек размеры разные, то можно сделать еще один макрос, который "запомнит" размеры ячейки в глобальных переменных.

Т.е. работа с макросами будет выглядеть примерно так.
- становимся в пустую ячейку
- запускаем макрос, запоминающий размеры
- вводим текст (при этом все становится плохо)
- запускаем другой макрос, который все исправляет

Это конечно извращение, но может кто-то придумает как это сделать лучше....
kminas
Сообщения: 108
Зарегистрирован: 06 янв 2006, 00:06
Откуда: Ростов-на-Дону

Спасибо, я придумал, задал в загружаемом файле с таблицей немного сжатый текст в этом столбце. Когда пробовал вписанный текст, то маленький текст растягивался до неприличия. Еще раз всем спасибо. Тему можно закрыть.
Ответить