Переместите форму и текстовое поле на слайде - PullRequest
0 голосов
/ 19 сентября 2019

Я хочу добиться, когда я выберу форму или текстовое поле, они будут перемещаться в то же место (выравнивание по низу) на слайде.Моя форма и текстовое поле отличаются по высоте, поэтому, например, с текстовыми полями, некоторые имеют одну строку, а некоторые имеют несколько строк.Текст в текстовом поле выравнивается по нижнему краю в 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 Ответ

2 голосов
/ 19 сентября 2019

Это переместит нижнюю часть фигуры на нижнюю часть слайда:

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
...