2012-01-25 5 views
8

Sto lavorando su un progetto. In cui voglio scoprire "La mia casella di testo sta uscendo dallo slide o no?" . Se sì, mostra il messaggio di errore.Come ottenere la dimensione della diapositiva del punto di alimentazione usando vba?

così la mia logica è se ho trovato la dimensione della diapositiva poi ho lo userà in SE ... condizione Else come:

If textbox_position < slide_dimension then 
#Error 
end if 

Se avete qualche altra idea, allora la prego di dirmi.

Grazie

risposta

16

Le proprietà della presentazione .PageSetup.SlideWidth e .SlideHeight forniscono le dimensioni della diapositiva in punti.

La vostra funzione avrebbe bisogno di fare qualcosa di simile (fuori dalla parte superiore della testa e fuori l'aria ..):

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

Buono codice Steve! –

+0

Ehi, grazie amico. sei troppo buono –

+0

Grazie, gente. –

1

Perché non si utilizza un segnaposto di PowerPoint per fare questo? per esempio:

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

È possibile chiamare questa sotto e passare i parametri

IndexOfSlide con una serie di diapositive e txt con un testo per creare.

+0

Grazie mille Bruno. Fammi provare. –