Консультация № 175195
13.12.2009, 17:01
0.00 руб.
0 2 1
Уважаемые эксперты подскажите, пожалуйста
код в ВБА, в Вордовском документе имеется таблица № 3.
Как сделать, чтобы линии 5 строки этой таблицы стали
верхняя красным, нижняя жёлтым, левая зелёным, правая линия этой строки стала, синим цветом.
И все линии этой строки стали белым цветом.
И второй схожий вопрос
подскажите, пожалуйста
код в ВБА, в Вордовском документе имеется таблица № 3.
Как сделать, чтобы линии 5 строки, 2 ячейки этой таблицы стали
верхняя красным, нижняя жёлтым, левая зелёным, правая линия этой ячейки стала, синим цветом.
И все линии этой ячейки стали белым цветом.
Спасибо Эндрю

Обсуждение

Неизвестный
14.12.2009, 18:18
общий
Сам спросил Сам ответил
Dim Документ As Document
Set Документ = Word.ActiveDocument 'создаём объект с именем ...

Документ.Tables(1).Rows(2).Borders(wdBorderRight).Color = wdColorRed 'правую линию таблицы ... строки ... окрасить в ... цвет
Документ.Tables(1).Rows(2).Borders(wdBorderLeft).Color = wdColorBlue 'левую линию таблицы ... строки ... окрасить в ... цвет
Документ.Tables(1).Rows(2).Borders(wdBorderTop).Color = wdColorYellow 'верхнюю линию таблицы ... строки ... окрасить в ... цвет
Документ.Tables(1).Rows(2).Borders(wdBorderBottom).Color = wdColorGreen 'нижнюю линию таблицы ... строки ... окрасить в ... цвет

Документ.Tables(1).Cell(Документ.Tables(1).Rows.Count, 2).Borders(wdBorderRight).Color = wdColorRed 'правую линию таблицы ... строки ... ячейки ... окрасить в ... цвет
Документ.Tables(1).Cell(Документ.Tables(1).Rows.Count, 2).Borders(wdBorderLeft).Color = wdColorBlue 'левую линию таблицы ... строки ... ячейки ... окрасить в ... цвет
Документ.Tables(1).Cell(Документ.Tables(1).Rows.Count, 2).Borders(wdBorderTop).Color = wdColorYellow 'верхнюю линию таблицы ... строки ... ячейки ... окрасить в ... цвет
Документ.Tables(1).Cell(Документ.Tables(1).Rows.Count, 2).Borders(wdBorderBottom).Color = wdColorGreen 'нижнюю линию таблицы ... строки ... ячейки ... окрасить в ... цвет

Единственное не знаю, как одной строкой кода сразу несколько линий строки или ячейки окрасить в некий цвет
Подскажите?
давно
Профессор
230118
3054
17.12.2009, 23:58
общий
это ответ
Здравствуйте, Ципихович Эндрю.

Для того, чтобы покрасить определенную линию таблицы, надо указать номер таблицы, номер строки, номер ряда и одну из констант wdBorderRight, wdBorderLeft, wdBorderTop, wdBorderBottom.
Полезно употребить оператор With. Суть его в том, чтобы не повторять все время один и тот же текст. Повторяющийся код пишем в заголовке with
With Word.ActiveDocument.Tables(1).Rows(2).Cells(5)
.Borders(wdBorderRight).Color = wdColorRed
.Borders(wdBorderLeft).Color = wdColorBlue
.Borders(wdBorderTop).Color = wdColorYellow
.Borders(wdBorderBottom).Color = wdColorGreen
End With

Если хотим все линии ячейки (или строки), окрасить в один цвет, есть другой оператор for each. Суть в том, что мы как бы говорим "Для всех границ этой ячейки сделай то-то".

For Each b In Документ.Tables(1).Rows(2).Cells(3).Borders
b.Color = wdColorRed
Next b

Форма ответа