VBA宏以增加powerpoint中选定形状/图片的旋转

VBA宏以增加powerpoint中选定形状/图片的旋转,vba,powerpoint,Vba,Powerpoint,基本上,我不是一个程序员,为了教育的目的,我在PowerPoint中做了很多绘图和图表。我目前使用PowerPoint 2016。为了提高我的工作流程速度,我将键盘快捷键映射到键盘上的宏键,这样我只需点击键盘上的一个键就可以获得功能 我试图找到一个宏,我可以链接到一个键盘快捷键,允许我增加当前选定形状的旋转到…比如说,每次我点击快捷键2度 我是ppt vba的新手。在做了一些研究之后,我得出了以下结论。但它似乎不起作用 Public Sub RotateCW2() Dim shp As Sh

基本上,我不是一个程序员,为了教育的目的,我在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

谢谢你的帮助

你就快到了。请尝试以下方法:

Public Sub RotateCW2()
  Dim shp As Shape

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

End Sub

形状对象有一系列可供选择的
Increment
属性

注意:从MSDN复制的说明

递增旋转(递增)

指定形状水平旋转的角度。正值使形状顺时针旋转;负值使形状逆时针旋转

IncrementRotationX(增量)

“指定形状绕x轴旋转的角度。可以是?90到90之间的值。正值使形状向上倾斜,负值使形状向下倾斜。”

IncrementRotationY(增量)

“指定形状绕y轴旋转的程度(以度为单位)。可以是?90到90之间的值。正值使形状向左倾斜;负值使形状向右倾斜。”


根据托马斯的回答,我想我可以试试这个

Public Sub RotateCW2()
  Dim shp As Shape

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

这一次我得到了错误“Compole error:Expected Function or variable”,它突出显示了(.IncrementRotation)。

在混合和匹配周围的内容后,我认为这一个工作正常

Sub Rotate()

      With ActiveWindow.Selection.ShapeRange
        .IncrementRotation 2
      End With

End Sub

它按预期工作。谢谢你们的回答。

谢谢史蒂夫。但当我运行这个程序时,仍然会出现相同的错误。“编译错误:找不到方法或数据成员”,并突出显示(.Rotate)。如果突出显示.Rotate,我怀疑您没有复制我建议的代码。请注意。旋转没有出现在它的任何地方。谢谢托马斯。但当我运行这个程序时,仍然会出现相同的错误。“编译错误:参数不是可选的”,并突出显示(.IncrementRotation)。@BryanHamilton对此表示抱歉。我更新了我的答案。我不应该使用
+
,因为
增量
是一个参数。
Sub Rotate()

      With ActiveWindow.Selection.ShapeRange
        .IncrementRotation 2
      End With

End Sub