Можно ли создать макрос в PowerPoint 2007, который управляет размером и расположением объектов диаграммы

Я пытаюсь добавить немного Visual basic к слайду PowerPoint. Я обычно работаю в Excel и был удивлен, узнав, PowerPoint не предлагает функцию записи. Мой слайд в настоящее время имеет шесть диаграмм на нем выстроились в простой сетке 2 на 3. Я хотел бы иметь возможность создать некоторый VB-код, который делает следующее, Когда я нажимаю любую конкретную диаграмму:

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

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

22
задан Mutuelinvestor
17.04.2023 22:34 Количество просмотров материала 2383
Распечатать страницу

1 ответ

добавьте это в презентацию, сохраните как PPTM, затем выберите каждую из диаграмм по очереди; вставить | действие / запустить макрос: ResizeMe

вы хотите, чтобы убедиться, что диаграммы пропорциональны размеру слайда, чтобы начать с (или изменить линии, которые устанавливают диаграмму на весь экран, чтобы использовать различные пропорции).

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

Sub ResizeMe(oSh As Shape)

    With oSh

        ' Is the shape full screen or normal?
        If .Left = 0 Then    ' it's full screen
            .Left = CSng(.Tags("Left"))
            .Top = CSng(.Tags("Top"))
            .Height = CSng(.Tags("Height"))
            .Width = CSng(.Tags("Width"))
        Else    ' it's small; biggify it:
            ' first, record it's small coordinates:
            .Tags.Add "Left", CStr(.Left)
            .Tags.Add "Top", CStr(.Top)
            .Tags.Add "Height", CStr(.Height)
            .Tags.Add "Width", CStr(.Width)
            ' now make it full screen
            .Left = 0
            .Top = 0
            .Height = ActivePresentation.PageSetup.SlideHeight
            .Width = ActivePresentation.PageSetup.SlideWidth
        End If

    End With

End Sub
0
отвечен Steve Rindsberg 2023-04-19 06:22

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх