Как получить размер слайда в Power Point с помощью VBA? - PullRequest
9 голосов
/ 25 января 2012

Я работаю над одним проектом. В котором я хочу узнать, «выходит из слайда мое текстовое поле или нет?» , Если да, то показать сообщение об ошибке.

так что моя логика в том, что если я нашел размер слайда, то я буду использовать его в IF ... В другом случае, например:

If textbox_position < slide_dimension  then
#Error
end if

Если у вас есть другая идея, пожалуйста, скажите мне.

Спасибо

Ответы [ 2 ]

17 голосов
/ 25 января 2012

Свойства презентации .PageSetup.SlideWidth и .SlideHeight предоставят вам размеры слайда в точках.

Ваша функция должна была бы делать что-то вроде (вне головы и в воздухе ..):

Function IsOffSlide (oSh as Shape) as Boolean
  Dim sngHeight as single
  Dim sngWidth as Single
  Dim bTemp as Boolean

  bTemp = False ' by default

  With ActivePresentation.PageSetup
    sngHeight = .SlideHeight
    sngWidth = .SlideWidth
  End With

  ' this could be done more elegantly and in fewer lines 
  ' of code, but in the interest of making it clearer
  ' I'm doing it as a series of tests.
  ' If any of them are true, the function will return true
  With oSh
    If .Left < 0 Then
       bTemp = True
    End If
    If .Top < 0 Then
       bTEmp = True
    End If
    If .Left + .Width > sngWidth Then
       bTemp = True
    End If
    If .Top + .Height > sngHeight Then
       bTemp = True
    End If
  End With

  IsOffSlide = bTemp
End Function
1 голос
/ 25 января 2012

Почему бы вам не использовать заполнители PowerPoint для этого? например:

Sub SetText(IndexOfSlide As Integer, txt As String)
'http://officevb.com
       ActivePresentation.Slides(IndexOfSlide).Shapes.Placeholders(1).TextFrame.TextRange.Text = txt
End Sub

Вы можете вызвать этот саб и передать параметры

IndexOfSlide с количеством слайдов и текст с текстом для создания.

...