В Word 2016 встроенные таблицы Excel нельзя масштабировать с помощью VBA - PullRequest
0 голосов
/ 28 ноября 2018

Контекст

У меня Word с несколькими встроенными таблицами Excel.Эти таблицы Excel различаются по ширине.Я пытаюсь настроить ширину электронной таблицы Excel с помощью кода VBA, чтобы они были оптимизированы для ширины страницы моего документа Word.

Эксцели были встроены через Вставка> Объект> Рабочая таблица Microsoft Excel

Проблемы

  1. В примере кода свойства .ScaleWidth и .ScaleHeight не влияют на размер таблиц в Word.
  2. Если яизмените высоту и ширину с помощью .Width и .Height таблицы обновятся до своих первоначальных размеров

Пример кода 1

For Each oShape In ActiveDocument.InlineShapes
    If oShape.Type = wdInlineShapeEmbeddedOLEObject Then
        If Left(oShape.OLEFormat.ProgID, 5) = "Excel" Then
            oShape.OLEFormat.Activate
            oShape.OLEFormat.Object.Application.Worksheets(1).Activate
            oShape.ScaleWidth = x ' something calculated
            oShape.ScaleHeight = y ' something calculated 
        End If
   End If
Next oShape

1 Ответ

0 голосов
/ 28 ноября 2018

Из вашего поста неясно, встроены ли рабочие листы (возможно, с использованием внешних ссылок, для которых вы можете использовать код для обновления) или как связанные объекты.Ваше «Я использую Inline Shapes вместо связанных Excels» не делает это более ясным.Для изменения размера попробуйте:

Sub Demo()
Application.ScreenUpdating = False
Dim Sctn As Section, iShp As InlineShape, sWdth As Single, sHght As Single
For Each Sctn In ActiveDocument.Sections
  With Sctn
    With .PageSetup
      sWdth = .PageWidth - .LeftMargin - .RightMargin - .Gutter
      sHght = .PageHeight - .TopMargin - .BottomMargin
    End With
    For Each iShp In .Range.InlineShapes
      With iShp
        .LockAspectRatio = True
        If .Width > sWdth Then .Width = sWdth
        If .Height > sHght Then .Height = sHght
      End With
    Next
  End With
Next
Application.ScreenUpdating = True
End Sub

Приведенный выше макрос будет уменьшать и увеличивать размер встроенных фигур в соответствии с областью печати. ​​

Что касается вашего "В некоторых таблицах последние столбцы изExcel не видны в Word », решение действительно зависит от того, встроены ли рабочие листы или связаны.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...