Войти

Показать полную графическую версию : [решено] Уничтожение параметра spacing для всех таблиц документа


defor6
25-10-2011, 18:34
День добрый.

Так сложилось, что текст получен из html и все таблицы пришли с нулевым значением интервала между ячейками. На практике это приводит к появлению двойных границ каждой ячейки в таблице. Дабы этого избежать, параметр "Интервал между ячейками" можно отключить вручную. Однако... Таблиц то море.. А в макрос я могу записать только конкретное число большее либо равное нулю..
Есть ли возможность в VBA "снять галочку" с параметра spacing для каждой таблицы?
Пример кода приложу, дабы не быть голословным:

Sub Tables()
'
'
'
Dim i As Integer
Dim Acount As Integer
Acount = ActiveDocument.Tables.count
For i = 1 To Acount
ActiveDocument.Tables(i).Spacing = 0 'приводит к появлению сдвоенных границ :(
Next
End Sub

defor6
26-10-2011, 11:50
Попробовал на чистом документе -> Создал произвольную таблицу (по умолчанию параметр/галочка Интервалы между ячейками отключен) -> Запустил процесс создания макроса -> Сначала активировал интервалы, потом снял.
Автоматический код привожу ниже:

Sub a_111()
'
'
'
With Selection.Tables(1)
.TopPadding = CentimetersToPoints(0)
.BottomPadding = CentimetersToPoints(0)
.LeftPadding = CentimetersToPoints(0.19)
.RightPadding = CentimetersToPoints(0.19)
.Spacing = CentimetersToPoints(0.04)
.AllowPageBreaks = True
.AllowAutoFit = True
End With
With Selection.Tables(1)
.TopPadding = CentimetersToPoints(0)
.BottomPadding = CentimetersToPoints(0)
.LeftPadding = CentimetersToPoints(0.19)
.RightPadding = CentimetersToPoints(0.19)
.Spacing = 0
.AllowPageBreaks = True
.AllowAutoFit = True
End With
End Sub


Как видно, единственным отличаем является параметр "Spacing". Однако при выставлении его в 0 = параметр не деактивируется, а выставляется в нулевое значение ==> сдвоенные границы, что визуально сильно "карявит" документ..

Iska
26-10-2011, 13:21
Для стандартной ширины «.InsideLineWidth» и «.OutsideLineWidth» попробуйте так:
Table.Spacing = -0.5

defor6
26-10-2011, 15:15
Уж не знаю, насколько это правильно, но визуально выглядит так, как нужно. Спасибо.

Iska
26-10-2011, 20:29
defor6, самое интересное — попробуйте посмотреть, например, из окна отладки, какое теперь значение свойства «.Spacing» у таблицы ;).




© OSzone.net 2001-2012