Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Программирование и базы данных (http://forum.oszone.net/forumdisplay.php?f=21)
-   -   [решено] Уничтожение параметра spacing для всех таблиц документа (http://forum.oszone.net/showthread.php?t=218874)

defor6 25-10-2011 18:34 1781485

Уничтожение параметра spacing для всех таблиц документа
 
День добрый.

Так сложилось, что текст получен из 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 1781994

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

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 1782073

Для стандартной ширины «.InsideLineWidth» и «.OutsideLineWidth» попробуйте так:
Код:

Table.Spacing = -0.5

defor6 26-10-2011 15:15 1782177

Уж не знаю, насколько это правильно, но визуально выглядит так, как нужно. Спасибо.

Iska 26-10-2011 20:29 1782408

defor6, самое интересное — попробуйте посмотреть, например, из окна отладки, какое теперь значение свойства «.Spacing» у таблицы ;).


Время: 06:59.

Время: 06:59.
© OSzone.net 2001-