Применять окно автозаполнения только к таблицам, размер которых превышает ширину страницы - PullRequest
0 голосов
/ 05 июля 2018

Я очень плохо знаком с макросами vba и word. У меня возникла проблема, когда я экспортирую документ в слово, и некоторые таблицы превышают ширину страницы. Мне было интересно, есть ли способ проверить, находится ли каждая таблица в пределах ширины страницы и, если нет, нацелиться ТОЛЬКО на таблицы, которые превысили ширину страницы, и автоматически подогнать эти таблицы к окну.

Вот код, который автоматически подгоняет каждую таблицу в документе к окну:

Sub tablesAutoFit()

Dim table As table

For Each table In ActiveDocument.Tables

table.AutoFitBehavior (wdAutoFitWindow)

table.AllowAutoFit = False

Next

End Sub

Я хочу знать, есть ли способ просто подгонять таблицы, которые превышают ширину страницы, а не каждую таблицу в документе.

Спасибо

1 Ответ

0 голосов
/ 05 июля 2018

Чтобы определить, помещается ли таблица на странице, необходимо определить ширину таблицы и сравнить ее с шириной страницы. В следующем примере предполагается, что таблица не содержит горизонтально слитых ячеек, поэтому столбцы могут быть адресованы. Если это не так, вам нужно «пройтись» по ячейкам в строке (ny), чтобы получить их ширину.

Sub TableWidth()
    Dim tbl As Word.Table
    Dim col As Word.Column
    Dim tblWidth As Double, pgWidth As Double
    Dim pgSetup As Word.PageSetup

    Set pgSetup = ActiveDocument.PageSetup
    pgWidth = pgSetup.PageWidth - pgSetup.LeftMargin - pgSetup.RightMargin
    Set tbl = ActiveDocument.Tables(1)
    For Each col In tbl.Columns
        tblWidth = tblWidth + col.width
    Next
    If pgWidth < tblWidth Then
        tbl.AutoFitBehavior wdAutoFitWindow
    End If
    Debug.Print tblWidth, pgWidth
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...