1

Тема: Автоматическое форматирование таблиц

Добрый день!
Пишу макрос, обрабатывающий распознанные таблицы. Мне нужно, чтобы во всех ячейках текст был выровнен по левому краю, по верхней границе и имел отступы от границ ячейки слева и справа 8 пикселей.
В общем, код либо не выравнивает ничего, либо выдается ошибка. Помогите!

Sub tables_finereader()
If ActiveDocument.Tables.Count > 0 Then
For Each t In ActiveDocument.Tables
On Error Resume Next
t.Rows.LeftIndent = 0
t.Rows.HeightRule = wdRowHeightAuto
t.Rows.Height = CentimetersToPoints(0)
t.Select
Selection.Rows.Alignment = wdAlignRowLeft
Selection.Cells.LeftPadding = PixelsToPoints(8)
Selection.Cells.RightPadding = PixelsToPoints(8)
Selection.Cells.VerticalAlignment = wdCellAlignVerticalTop
Selection.Collapse Direction:=wdCollapseEnd
n = n + 1
Next t
End If

End Sub

2

Re: Автоматическое форматирование таблиц

Разобрался сам. Вот так работает:

For Each c In t.Range.Cells
    c.VerticalAlignment = wdCellAlignVerticalTop
    c.TopPadding = PixelsToPoints(0)
    c.BottomPadding = PixelsToPoints(0)
    c.LeftPadding = PixelsToPoints(5)
    c.RightPadding = PixelsToPoints(5)
 i = i + 1
Next c

Но буду признателен, если кто-нибудь предложит лучший вариант!
smile

3

Re: Автоматическое форматирование таблиц

Вот так еще лучше (быстрее):

t.Range.Cells.VerticalAlignment = wdCellAlignVerticalTop
t.RightPadding = PixelsToPoints(5, False)
t.LeftPadding = PixelsToPoints(5, False)