【问题标题】:VBA macro to increment rotation of selected shape/picture in powerpointVBA宏以增加PowerPoint中所选形状/图片的旋转
【发布时间】:2018-05-21 14:56:39
【问题描述】:

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

感谢您的帮助!

【问题讨论】:

    标签: vba powerpoint


    【解决方案1】:

    在混合和匹配周围的东西之后,我认为这个是有效的。

    Sub Rotate()
    
          With ActiveWindow.Selection.ShapeRange
            .IncrementRotation 2
          End With
    
    End Sub
    

    它按预期工作。谢谢大家的回答。

    【讨论】:

      【解决方案2】:

      你快到了。试试这个:

      Public Sub RotateCW2()
        Dim shp As Shape
      
          Set shp = ActiveWindow.Selection.ShapeRange(1)
          shp.Rotation = shp.Rotation + 2  
      
      End Sub
      

      【讨论】:

      • 谢谢史蒂夫。但是当我运行它时,我仍然得到同样的错误。 “编译错误:未找到方法或数据成员”并突出显示 (.Rotate)。
      • 如果它突出显示 .Rotate,我怀疑你没有复制我建议的代码。请注意,.Rotate 不会出现在其中的任何位置。
      【解决方案3】:

      根据 Thomas 的回答,我想我可以试试这个。

      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)。

      【讨论】:

        【解决方案4】:

        Shape Object 有一系列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
        

        【讨论】:

        • 谢谢托马斯。但是当我运行它时,我仍然得到同样的错误。 “编译错误:参数不是可选的”并突出显示 (.IncrementRotation)。
        • @BryanHamilton 对此感到抱歉。我更新了我的答案。我不应该使用+ 因为Increment 是一个参数。
        猜你喜欢
        • 1970-01-01
        • 2018-03-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-01-13
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多