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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.01.2009, 07:12   #1
tolikman
Форумчанин
 
Регистрация: 25.08.2008
Сообщений: 159
Вопрос как провести графич.линию через сердину клекти таблицы?

С прошедшими праздниками всех!
есть файл-пример: таблицы и линии.rar, есть вопрос: как программно нарисовать линию которая ровно посередине пересечет строку или столбец и на пол сантиметра будет "торчать" с обеих сторон таблицы? при условии, что всегда во всех ячейках стоиот выравнивание по центру.
tolikman вне форума Ответить с цитированием
Старый 09.01.2009, 07:41   #2
Sasha_Smirnov
Особый статус
Участник клуба
 
Аватар для Sasha_Smirnov
 
Регистрация: 24.11.2008
Сообщений: 1,535
По умолчанию Вот так

Пожалуй, не стоит делать это путём усложнения границ таблицы.
Лучше подбери координаты рисованной (поверх) линии.

Код:
ActiveDocument.Shapes.AddLine(130, 110, 256, 110).Select
(Здесь 110 — расстояние в пикселах от верха страницы, а 130 и 256 — концов отрезка от левого края.)
Подбери цифры, и усё.

А легче, однако, не программно, а вручную:
Настройка > панель Рисование > Линии (мы ведь юзаем Word?..)
Sasha_Smirnov вне форума Ответить с цитированием
Старый 09.01.2009, 11:19   #3
tolikman
Форумчанин
 
Регистрация: 25.08.2008
Сообщений: 159
По умолчанию

проблема не в том что я мучаю границы таблицы. проблема в том, чтонеобходимо именно программно рисовать линии на большом количестве таблиц в одном док-те, которых в свою очередь тоже много, нужна автоматизация.
как рисовать линии я знаю, а как узнать координаты ячейки, или столбца, или строки нет. В этом вся проблема. Как мне узнать какие цифры надо подобрать.
Если таблица была бы с фиксированной шириной равной ширине страницы, то я бы смог провести вертикальную линию, впринципе с трудом можно вычислить и горизонтальные координаты таблицы, которая не по ширине.
но как определить высоту? верхнюю координату таблицы?
tolikman вне форума Ответить с цитированием
Старый 09.01.2009, 13:52   #4
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

A с какой целью это делается? Может поискать выход проще?
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 09.01.2009, 15:08   #5
tolikman
Форумчанин
 
Регистрация: 25.08.2008
Сообщений: 159
По умолчанию

Я искал, ненашол. Программа должна выводить результат именно в таком виде. А альтернативу линиям я не нашол...
tolikman вне форума Ответить с цитированием
Старый 09.01.2009, 15:19   #6
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Зачем? Можно порыть.
Думаю, главная задача здесь, определять положение курсора не в символах, а в пикселях относительно начала страницы. Дальше просто.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 09.01.2009, 15:35   #7
tolikman
Форумчанин
 
Регистрация: 25.08.2008
Сообщений: 159
По умолчанию

Документ полность управляется программой, от создания до сохранения и закрытия, как мне определить сколько пикселей от начала страницы. Я не умею помещать курсор в нужное место, и Selection в данном случае я не пользуюсь, подскажи как определить координаты нужного места в документе, я бы этим очень много зайцев убил.
Какую альтернативу линиям можно найти? когда примитивнее линии я ничего не знаю. Заранее спасибо.
tolikman вне форума Ответить с цитированием
Старый 09.01.2009, 15:38   #8
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Нашел в Help такое для рисунков:
Код:
  Shape(имя_линии).RelativeHorizontalPosition = _
    wdRelativeHorizontalPositionColumn 'выровнять относительно колонки
    Shape(имя_линии).Left = wdShapeCenter 'как выровнять относительно колонки: по центру.
Выравнивание относительно строки смотрю, но там сложнее как-то.
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 09.01.2009, 15:51   #9
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Вот этот код рисует вертикальную линию и выравнивает ее относительно центра столбца таблицы. Координаты заданы произвольно, но можно подумать, как брать положение таблицы и уже из нее брать координаты.
Код:
Dim oline As Shape
Set oline = ActiveDocument.Shapes.AddLine(100, 100, 100, 200)
oline.RelativeHorizontalPosition = wdRelativeHorizontalPositionColumn
oline.Left = wdShapeCenter
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 09.01.2009, 15:58   #10
tolikman
Форумчанин
 
Регистрация: 25.08.2008
Сообщений: 159
По умолчанию

вертикальную линию мы нарисуем с правильными координатами по оси х, как узнать координаты по оси у? таблица может находиться и в середине листа.
tolikman вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Отправка 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