|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
09.01.2009, 17:13 | #11 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Решение для вертикальных линий я нашел. Приду домой, тогда отпишусь. Это будет часов в 9 по Москве
Лучше день потерять — потом за пять минут долететь!©
|
09.01.2009, 17:59 | #12 |
Форумчанин
Регистрация: 25.08.2008
Сообщений: 159
|
спасибо, буду ждать.)
|
09.01.2009, 22:51 | #13 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Ну, приблизительно так. Для столбцов работает. Будем думать для строк.
Код:
Лучше день потерять — потом за пять минут долететь!©
|
10.01.2009, 10:28 | #14 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Почти окончательный результат
Смотри в приложенном файле готовый макрос.
Но есть один баг, по всей видимости, самого Word'a. Для того, чтобы выровнять линии относительно ячейки таблицы, нужно ей задавать разметку в ячейке таблицы. Код:
Еще непонятно, что происходит с точкой начала по Y для вертикальной линии. В таблице с широкими строками рисует как надо, а вот с узкими — заметно, что верхний выступ больше, чем нижний. Тоже самое происходит и с горизонтальными линиями. Может как-то нужно подшаманить с началом координат? Пробуй. Кстати, там в макросах я написал процедуру для очистки документа от всех линий. Для отладки. Это лучше, чем руками их вытирать каждый раз.
Лучше день потерять — потом за пять минут долететь!©
|
10.01.2009, 10:57 | #15 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
2 viter.alex
Я тут тоже пытался кое-что сделать.
Взял за основу твой вариант. Получилось вот что: Основной макрос, предварительно подготавливающий таблицу: Код:
Код:
|
10.01.2009, 11:51 | #16 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
2 [B]EducatedFool[/B]
А с несколькими таблицами пробовал его запускать?
Когда ты выравниваешь таблицу Код:
то теряется изначальное ее расположение, что не есть хорошо. А сама идея с заданием строки и столбца — хороша+1
Лучше день потерять — потом за пять минут долететь!©
|
10.01.2009, 14:55 | #17 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
2 viter.alex
Цитата:
По-другому просто никак не получилось сделать... Когда я увидел эту тему, решил, что за пару минут напишу макрос. Делов-то - получить координаты верхнего левого угла таблицы, и размеры строк и столбцов. Через пару часов я понял, что не всё так просто... |
|
10.01.2009, 15:42 | #18 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Все очень непросто. Нужно кроме положения левого верхнего угла таблицы и ее ширины и высоты, учитывать и границы текста LeftPadding, RightPadding для первого и последнего столбца, и TopPadding, BottomPadding для первой и последней строки.
Лучше день потерять — потом за пять минут долететь!©
|
10.01.2009, 17:47 | #19 |
Форумчанин
Регистрация: 25.08.2008
Сообщений: 159
|
Большое спасибо Вам viter.alex и EducatedFull! постараюсь разобраться и при положительном резульате выложу сюда финальную процедуру.
|
11.01.2009, 03:04 | #20 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
Решение для смещения текста
Можно избавиться от смещения текста после вставки линии, если все линии сгруппировать!
Проблема в том, как их группировать? Есть метод ShapeRange.Group. Нужно выбирать линии индивидуально для каждой таблицы. Как?
Лучше день потерять — потом за пять минут долететь!©
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Отправка SMS через клик по строке таблицы | RUBEY | Microsoft Office Excel | 4 | 25.12.2008 11:07 |
Как нарисовать линию по пикселям | DenLab | Общие вопросы Delphi | 4 | 03.12.2008 09:34 |
Как же нарисовать линию на форме? (Вопрос новичка) | grey | Помощь студентам | 11 | 24.11.2008 10:31 |
хочу стереть линию с канвы.КАК? | harmager | Общие вопросы Delphi | 1 | 24.11.2008 10:28 |