Wo ist der Fehler im Code (VBA PowerPoint)?

2 Antworten

zweiter Teil:


Sub CreateClockShape()
    On Error GoTo AbortClockShape
    'first check if shape already exists
    Dim sh As Shape
    On Error Resume Next
    Set sh = ActiveSlide.Shapes("PointaixClockLabel")
    On Error GoTo AbortClockShape
    If sh Is Nothing Then
        'shape with that name does not exist, so lets create it
        With ActiveSlide.Shapes.AddTextbox(Orientation:=msoTextOrientationHorizontal, Left:=300, Top:=8, Width:=75, Height:=14)
            'Set name
            .Name = "PointaixClockLabel"
            ' fill parameters
            .Fill.Visible = msoTrue
            .Fill.ForeColor.RGB = RGB(0, 0, 0)
            .Fill.Transparency = 0#
            ' line parameters
            .Line.Weight = 2#
            .Line.Visible = msoTrue
            .Line.ForeColor.RGB = RGB(255, 0, 0)
            .Line.BackColor.RGB = RGB(255, 255, 255)
            'Text & font size
            With .TextFrame.TextRange
                .Text = Format(Now(), TIMEFORMATSTRING)
                .Font.Size = 12
                .Font.Italic = False
                .Font.Color.RGB = RGB(255, 255, 255)
            End With
        End With
        Set sh = ActiveSlide.Shapes("PointaixClockLabel")
        'we found the shape - lets simply update the text
        sh.TextFrame.TextRange.Text = Format(Now(), TIMEFORMATSTRING)
    End If
    Exit Sub
    MsgBox Err.Description
End Sub
Sub DeletePrevClockShape()
    On Error GoTo ErrorOccurred
    'If Not prevSlideIdx Is Nothing Then
    If prevSlideIdx > 0 Then
    End If
    Exit Sub
    MsgBox Err.Description
End Sub
'returns a reference of the active slide
Function ActiveSlide() As Slide
  On Error GoTo ErrHandler
  Set ActiveSlide = ActivePresentation.SlideShowWindow.View.Slide
  Exit Function
  Set ActiveSlide = Nothing
End Function

Hast du den Datentyp auf LongLong gesetzt?

Public prevSlideIdx As LongLong

Nutze stattdessen Integer.

Was möchtest Du wissen?