Код VBA для настройки размера изображения в PowerPoint 2016

0 PSR [2018-06-13 22:05:00]

Я нахожусь на своей первой неделе обучения VBA, и я ищу код VBA, который поможет мне изменить размер и переместить изображения, вставленные в PowerPoint 2016. Ниже приведены требуемые данные формата изображения:

Размер - Высота = 3.39 "- Ширина = 6.67" - Вращение = 0 - Высота шкалы = 62% - Ширина шкалы = 62% - Соотношение сторон = Заблокировано - Относительно исходного размера изображения = true

Положение - Горизонтальное положение = 0 - Верхний левый угол - Вертикальное положение = 2.06 - Верхний левый угол

Любая помощь будет принята с благодарностью.

vba image-resizing


5 ответов


1 PSR [2018-06-24 23:08:00]

Ниже центрирует изображение в слайде

Sub ResizeAll()
For Each tSlide In ActiveWindow.Presentation.Slides
    tSlide.Select
    With tSlide.Shapes.Item(1)
    'assume a blank slide with one image added only
        .Select
        .Height = 72 * 3.39
        .Width = 72 * 6.67
    'algin middle (Horizontal Center)
        .Left = ActivePresentation.PageSetup.SlideWidth / 2 - .Width / 2
        .Top = ActivePresentation.PageSetup.SlideHeight / 2 - .Height / 2
    End With
Next
End Sub

0 Marcucciboy2 [2018-06-13 22:52:00]

Хорошо, так что этот макрос отрегулирует детали каждого изображения в вашей PowerPoint.

Sub AdjustImages()

    Dim curSlide As Slide
    Dim curShape As Shape

    For Each curSlide In ActivePresentation.Slides
        For Each curShape In curSlide.Shapes
            With curShape

                'size:
                ''1 inch = 72 points
                .Height = 72 * 3.39
                .Width = 72 * 6.67

                .ScaleHeight 0.62, msoTrue
                .ScaleWidth 0.62, msoTrue

                .LockAspectRatio = msoTrue


                'position:
                .Rotation = 0

                .Left = 0
                .Top = 2.06

                'Relative to original picture size = true

            End With
        Next curShape
    Next curSlide

End Sub

Единственная часть вашего вопроса, которую я действительно не понимаю, - это когда вы упоминаете, что это "относительно исходного размера изображения = истина". Кажется, я не могу найти атрибут, который соответствует этому.


0 PSR [2018-06-13 23:52:00]

"Относительно исходного размера изображения" находится флажок, расположенный под форматом. Вероятно, я указал неверный оператор. Это; однако, проверяется, когда я просматриваю размер и положение изображения. Не уверен, требуется ли утверждение.

Я добавил и запустил код. Произошла следующая ошибка:

Ошибка времени выполнения -2147024809 (80070057) Аргумент RelativetoOriginalSie применяется только к изображению или объекту OLE.

При отладке кода выделялось следующее:

.ScaleHeight 0.62, msoTrue


0 PSR [2018-06-24 23:11:00]

Ниже центрирует изображение и выравнивает его влево

Sub ResizeAll()
For Each tSlide In ActiveWindow.Presentation.Slides
    tSlide.Select
    With tSlide.Shapes.Item(1)
    'assume a blank slide with one image added only
        .Select
        .Height = 72 * 3.39
        .Width = 72 * 6.67
    'algin middle (Horizontal Center)
        .Left = 0
        .Top = ActivePresentation.PageSetup.SlideHeight / 2 - .Height / 2
    End With
Next
End Sub

0 PSR [2018-06-24 23:00:00]

Ниже приведен код, который работал для меня. Спасибо за поддержку.

Sub ResizeAll()
For Each tSlide In ActiveWindow.Presentation.Slides
    tSlide.Select
    With tSlide.Shapes.Item(1)
    'assume a blank slide with one image added only
        .Select
        .Height = 72 * 3.39
        .Width = 72 * 6.67
    'algin middle (Horizontal Center)
        .Left = 0
        .Top = ActivePresentation.PageSetup.SlideHeight / 3.25
    End With
Next
End Sub