Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Macos Powerpoint VBA宏以复制对象';s大小和位置并粘贴到另一个对象_Macos_Vba_Powerpoint - Fatal编程技术网

Macos Powerpoint VBA宏以复制对象';s大小和位置并粘贴到另一个对象

Macos Powerpoint VBA宏以复制对象';s大小和位置并粘贴到另一个对象,macos,vba,powerpoint,Macos,Vba,Powerpoint,刚从Windows切换到Mac,在Windows上的ppt中,我有一个加载项,允许我复制对象的属性,包括大小和/或位置,并将其粘贴到另一个对象,有点像一个高级格式画师,可以切换要复制的属性 我没有这个插件了,但我非常想创建一个简单的宏来复制大小和位置。这是可能的吗?如果是的话,你能提供代码或者给我指一个我可以自学的资源吗 我花了大约2个小时搜索,但找不到与office mac兼容的解决方案-所以这是我最后的希望 下面是一个有效的例子。您可以调整它以满足您的特定需求 Sub CopySizeAnd

刚从Windows切换到Mac,在Windows上的ppt中,我有一个加载项,允许我复制对象的属性,包括大小和/或位置,并将其粘贴到另一个对象,有点像一个高级格式画师,可以切换要复制的属性

我没有这个插件了,但我非常想创建一个简单的宏来复制大小和位置。这是可能的吗?如果是的话,你能提供代码或者给我指一个我可以自学的资源吗


我花了大约2个小时搜索,但找不到与office mac兼容的解决方案-所以这是我最后的希望

下面是一个有效的例子。您可以调整它以满足您的特定需求

Sub CopySizeAndPosition()

    ' Usage: Select two shapes. The size and position of
    ' the first shape selected will be copied to the second.

    Dim w As Double
    Dim h As Double
    Dim l As Double
    Dim t As Double

    With ActiveWindow.Selection.ShapeRange(1)
        w = .Width
        h = .Height
        l = .Left
        t = .Top
    End With
    With ActiveWindow.Selection.ShapeRange(2)
        .Width = w
        .Height = h
        .Left = l
        .Top = t
    End With

End Sub

一个可能的更改:如果第二个选定形状设置为锁定纵横比,您可能会得到一些奇怪的结果(更改宽度会导致高度更改,更改高度也会更改宽度…PPT试图防止形状扭曲)。如果要允许失真,请在设置.Width之前添加.LockAspectRatio=False。或者,如果您希望确保不更改纵横比,请将其设置为真