Макрос Visual Basic в Word для Изменения размер/Центрирования/Удаления Всех Изображений

Я нашел макрос VBA онлайн, который изменяет размер всех изображений, одним словом, документ:

Sub ResizeAllImages()
''# make all images (both inline and floating)
''# 11 cm wide while preserving aspect ratio

Dim oShp As Shape
Dim oILShp As InlineShape

For Each oShp In ActiveDocument.Shapes
    With oShp
        .Height = AspectHt(.Width, .Height, _
        CentimetersToPoints(11))
        .Width = CentimetersToPoints(11)
    End With
Next

For Each oILShp In ActiveDocument.InlineShapes
    With oILShp
        .Height = AspectHt(.Width, .Height, _
        CentimetersToPoints(11))
        .Width = CentimetersToPoints(11)
    End With
Next
End Sub

Я не мог найти название метода, который я мог использовать для центра - выравнивают все изображения. Кто-либо знает то, что я должен добавить, и где я должен был бы добавить его?

Наконец, я хотел бы удалить изображения, которые я нахожу, чтобы быть слишком маленьким. Как я сделал бы... Если ширина формы меньше, чем 5, и высота формы меньше, чем 5, удалите форму.

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

5
задан Todd Main 31 July 2010 в 19:43
поделиться

2 ответа

Код для удаления маленьких изображений:

Sub DeleteSmallPictures()
Dim iShp As InlineShape

    For Each iShp In ActiveDocument.InlineShapes
        With iShp
            If .Width < CentimetersToPoints(5) Then
                iShp.Delete
            End If
        End With
    Next iShp
End Sub
1
ответ дан 14 December 2019 в 04:39
поделиться

Я думаю, вы не можете выровнять изображения по центру. Вы можете выровнять абзацы по центру. Возможно, вам поможет что-то вроде этого:

For Each oILShp In ActiveDocument.InlineShapes
    oILShp.Select
    Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
Next

Для удаления просто вызовите Delete для каждого объекта Shape, удовлетворяющего вашим условиям.

5
ответ дан 14 December 2019 в 04:39
поделиться
Другие вопросы по тегам:

Похожие вопросы: