2

В этом коде для изменения размера изображения:

Sub resize()
Dim i As Long
With ActiveDocument
  For i = 1 To .InlineShapes.Count
        With .InlineShapes(i)
            .ScaleHeight = 50
            .ScaleWidth = 50
        End With
    Next i
End With
End Sub

Я хочу включить команду для изменения переноса текста со стандартного (встроенного) на «верх и низ». Какой код мне нужно добавить?

1 ответ1

0

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

Исправление заключается в том, чтобы работать в обратном направлении от последней встроенной формы до первой.

Sub resize()
Dim i As Long, rng As Range
With ActiveDocument
    For i = .InlineShapes.Count To 1 Step -1
        With .InlineShapes(i)
            .ScaleHeight = 50
            .ScaleWidth = 50
            Set rng = .Range
            .ConvertToShape
            rng.ShapeRange(1).WrapFormat.Type = wdWrapTopBottom
        End With
    Next i
End With
End Sub

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .