2012-01-25 8 views
8

Estoy trabajando en un proyecto. En el que quiero saber "¿Se está acabando el cuadro de texto o no?" . Si es así, muestre el mensaje de error¿Cómo obtener la dimensión de la diapositiva del power point usando vba?

así que mi lógica es que si encontraba la dimensión de la diapositiva y luego lo voy a utilizar en SI ... condición de que se le parezca:

If textbox_position < slide_dimension then 
#Error 
end if 

Si usted tiene alguna otra idea, por favor, dime.

Gracias

Respuesta

16

Las propiedades .PageSetup.SlideWidth y .SlideHeight de la presentación le darán las dimensiones de la diapositiva en puntos.

Su función tendría que hacer algo como (fuera de la parte superior de la cabeza y en el aire ..):

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 
+0

¡Buen código Steve! –

+0

Hola gracias amigo. usted es demasiado bueno –

+0

Gracias, amigos. –

1

Por qué no usar una marcadores de posición de PowerPoint para hacer esto? por ejemplo:

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

Usted puede llamar a este sub y pasar parámetros

IndexOfSlide con una serie de diapositivas y txt con un texto para crear.

+0

Muchas gracias Bruno. Déjame intentarlo. –

Cuestiones relacionadas