Страница 1 из 2

Word- как установить полям всех ячеек таблицы значение полей, принятое по умолчанию

Добавлено: 30 сен 2010, 19:42
anval
В Word-ом документе имеется таблица, для которой заданы левое и правое поля ячеек (Таблица-Свойства таблицы-Параметры-Поля ячеек по умолчанию).

Параметры отдельных ячеек таблицы отличаются от заданных. Необходимо значения полей всех ячеек таблицы установить равными значениям, принятым в таблице по умолчанию, что делается в Worde очень просто:
Таблица-Свойства таблицы-Ячейка – Параметры-Поля ячейки (включить «Как во всей таблице)).
Как это сделать с помощью макроса?
Спасибо

Re: Word- как установить полям всех ячеек таблицы значение полей, принятое по умолчан

Добавлено: 30 сен 2010, 22:14
Busine2009
anval
я не нашёл, как добраться с помощью VBA к
Свойства таблицы - Ячейка - Параметры.
Но сбросить можно следующим образом:

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

Sub m_1()
Selection.Tables(1).Style = "Сетка таблицы"
End Sub
После чего можно установить нужные поля для всей таблицы.

Re: Word- как установить полям всех ячеек таблицы значение полей, принятое по умолчан

Добавлено: 01 окт 2010, 11:52
anval
Busine2009, спасибо .
Это не совсем то, что хотелось бы (т.к. сбрасываются все параметры, установленные в некоторых ячейках специальным образом), поэтому приходится восстанавливать и их (выравнивание в ячейках, вид границы и т.д.).
Поэтому, если появятся еще какие-то предложения, буду признательна.
Попутный вопрос - как выделить несколько строк таблицы, зная номера строк?

Re: Word- как установить полям всех ячеек таблицы значение полей, принятое по умолчан

Добавлено: 01 окт 2010, 15:32
Terminators
anval
вот так можно управлять полями ячеек, но как поставить галочку "Поля ячеек "как во всей таблице" - не знаю.

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

Sub Макрос1()
Dim oCell As Cell
For Each oCell In Selection.Tables(1).Range.Cells
    oCell.TopPadding = CentimetersToPoints(0)
    oCell.BottomPadding = CentimetersToPoints(0)
    oCell.LeftPadding = CentimetersToPoints(0.19)
    oCell.RightPadding = CentimetersToPoints(0.19)
Next
End Sub
Вот так можно выделять строки в таблице:

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

Sub Макрос2()
Selection.Tables(1).Rows(1).Select
End Sub

Re: Word- как установить полям всех ячеек таблицы значение полей, принятое по умолчан

Добавлено: 01 окт 2010, 17:09
anval
Terminators - спасибо.
Способом перебора в цикле я пробовала, но т.к таблица большая (1000 строк, 10 колонок - и это не предел), то длится такая процедура очень долго. Поэтому воспользовалась пока рекомендацией Busine2009, дальше устанавливаю значения полей как параметры таблицы (Selection.Tables(1).LeftPadding и т.д.) - это всего лишь по одному значению для каждого поля, а дальше нужно исправлять то, что отличается от стандарта, тут и спотыкаюсь - как это записать.
Может, кто-нибудь все-таки придумает, как запрограммировать действия, которые будут соответствовать установке галочек "Поля ячеек "как во всей таблице" и "Параметры" - "переносить текст" ( "Таблица-Свойства таблицы-Ячейка – Параметры").

Код :
Sub Макрос2()
Selection.Tables(1).Rows(1).Select
End Sub

Мой вопрос был:
"как выделить несколько строк таблицы, зная номера строк"
Выделение нужно не одной строки, а нескольких.

И еще вопрос - как объявить заголовок таблицы - пусть это будут первые ее 3 строки.

Re: Word- как установить полям всех ячеек таблицы значение полей, принятое по умолчан

Добавлено: 01 окт 2010, 17:36
Terminators
"Параметры" - "переносить текст" ( "Таблица-Свойства таблицы-Ячейка – Параметры"
Запишите макрос с помощью макрорекордера и будет код.
как выделить несколько строк таблицы, зная номера строк
с помощью VBA можно выделить одновременно только смежные элементы. Поэтому выделять не надо, а надо делать действия над объектами.

Заголовки таблицы:

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

Sub Макрос3()
Selection.Tables(1).Rows(1).HeadingFormat = True
Selection.Tables(1).Rows(2).HeadingFormat = True
Selection.Tables(1).Rows(3).HeadingFormat = True
End Sub

Re: Word- как установить полям всех ячеек таблицы значение полей, принятое по умолчан

Добавлено: 01 окт 2010, 19:23
anval
Terminators, я с макрорекодера и начинала - получила следующий код

Sub УстановитьПараметрыЯчеек()
Selection.Tables(1).Select
With Selection.Cells(1)
.WordWrap = True
.FitText = False
End With
End Sub

Действия были следующие (запись макроса начала, стоя в произвольной ячейке таблицы)
Таблица-Выделить таблицу
Таблица-Свойства таблицы-Ячейка-Включаю "Поля ячейки- как во всей таблице" и "переносить текст"
Запускаю макрос , результат работы:
установлен режим переноса в первой ячейке
поля везде остаются прежними, что и соответствует тексту макроса.

С заголовком получилось, спасибо.

Terminators, не поняла - так можно ли в Worde выделить смежные строки таблицы? Мне и нужны смежные .

Re: Word- как установить полям всех ячеек таблицы значение полей, принятое по умолчан

Добавлено: 01 окт 2010, 19:42
Terminators
anval
да, вспомнил про то, что макрос применяется только к одной ячейке.

А что тебе выделить надо конретно?
Пока приходит в голову только использование Selection + Extend: выделяешь одну строку, а затем двигаешься с Extendом.

Re: Word- как установить полям всех ячеек таблицы значение полей, принятое по умолчан

Добавлено: 01 окт 2010, 20:02
anval
Terminators - нужно выделить несколько конкретных строк таблицы (попробую с Extendом)

И еще впрос.
В нижнем колонтитуле находится таблица. Как записать в ее ячейку информацию?

Re: Word- как установить полям всех ячеек таблицы значение полей, принятое по умолчан

Добавлено: 02 окт 2010, 08:26
Busine2009
anval

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

Sub m_1()
Selection.Sections(1).Footers(wdHeaderFooterPrimary).Range.Tables(1).Cell(1, 1).Range.Text = "Текст"
End Sub