Макрос VBA для увеличения вращения выбранной фигуры / изображения в powerpoint - PullRequest
0 голосов
/ 21 мая 2018

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

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

Я новичок в ppt vba.После некоторых исследований я пришел к такому выводу.Но, похоже, это не работает.

Public Sub RotateCW2()
  Dim shp As Shape

    Set shp = ActiveWindow.Selection.ShapeRange(1)
    shp.Rotate = shp.Rotate + 2  

End Sub

Цените помощь!

Ответы [ 4 ]

0 голосов
/ 21 мая 2018

После смешивания и подбора вещей, я думаю, что это работает.

Sub Rotate()

      With ActiveWindow.Selection.ShapeRange
        .IncrementRotation 2
      End With

End Sub

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

0 голосов
/ 21 мая 2018

Объект Shape имеет ряд Increment свойств на выбор.

Примечание. Описания скопированы с MSDN

IncrementRotation( Increment )

"Указывает, на сколько градусов должна поворачиваться фигура в градусах. Положительное значение поворачиваетформа по часовой стрелке; отрицательное значение поворачивает его против часовой стрелки. "

IncrementRotationX( Increment )

" Указывает, насколько (в градусах) вращение фигуры вокруг оси xдолжно быть изменено. Может быть значением от? 90 до 90. Положительное значение наклоняет форму вверх; отрицательное значение наклоняет ее вниз. "

IncrementRotationY( Increment )

"Указывает, на сколько (в градусах) должно быть изменено вращение формы вокруг оси Y. Может быть значением от? 90 до 90. Положительное значение наклоняет форму влево; отрицательное значение наклоняет еенаправо. "

Public Sub RotateCW2()
  Dim shp As Shape

    Set shp = ActiveWindow.Selection.ShapeRange(1)
    shp.Rotate = shp.IncrementRotation 2

End Sub
0 голосов
/ 21 мая 2018

Из ответа Томаса я подумал, что могу попробовать это.

Public Sub RotateCW2()
  Dim shp As Shape

    Set shp = ActiveWindow.Selection.ShapeRange(1)
    shp.Rotate = shp.IncrementRotation(2)
End Sub

На этот раз я получаю сообщение об ошибке «Ошибка комполяции: ожидаемая функция или переменная», и оно подсвечивается (.IncrementRotation).

0 голосов
/ 21 мая 2018

Вы были почти там.Попробуйте вместо этого:

Public Sub RotateCW2()
  Dim shp As Shape

    Set shp = ActiveWindow.Selection.ShapeRange(1)
    shp.Rotation = shp.Rotation + 2  

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