在幻灯片上重新放置形状和文本框

时间:2019-09-19 17:42:52

标签: vba powerpoint powerpoint-vba powerpoint2016

当我选择形状或文本框时,它们要移动到幻灯片上的相同位置(底部对齐),我想实现这一目标。我的形状和文本框的高度不同,例如,对于文本框,有些有一行,有些有多行。文本框中的文本与ppt中的“底部”对齐。

我尝试使用代码.top,但是它将把具有两行或更多行的文本框移出幻灯片区域。尝试修复所选形状或文本框的高度是否不同时,它将停留在底部的左下角以向上并停留在幻灯片上。下面是我到目前为止的代码。谢谢

 Sub PositionShape()
     Dim oshp As Shape
     On Error Resume Next

     Set oshp = ActiveWindow.Selection.ShapeRange(1)

     With oshp
         .LockAspectRatio = False
         .Left = 0.5 * 72
         .Top = 7.3 * 72
     End With

 End Sub

1 个答案:

答案 0 :(得分:4)

这会将形状的底部移动到幻灯片的底部:

Sub PositionShape()
  Dim oshp As Shape
  Dim SlideHeight&
  SlideHeight& = Application.ActivePresentation.PageSetup.SlideHeight
  Set oshp = ActiveWindow.Selection.ShapeRange(1)
  With oshp
    .Left = 0.5 * 72
    .Top = SlideHeight& - .Height
  End With
 End Sub