Analogue Clock in Excel VBA

Dim blnClockRunning As Boolean
Dim SecondHand As Object
Dim MinuteHand As Object
Dim HourHand As Object
Dim sTime As String
' Usage - click in cell B1 to Start, C1 to Stop
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
    If Target.Address(True, True, xlA1) = "$B$1" Then
        Call startclock
        Range("B1") = "Start"
        Range("B1").Select
        Selection.Font.FontStyle = "Bold"
        Selection.Font.ColorIndex = 2 ' White
        Selection.Interior.ColorIndex = 1 ' Black
        Exit Sub
    End If
    If Target.Address(True, True, xlA1) = "$C$1" Then
        Call stopclock
        Range("C1") = "Stop"
        Range("C1").Select
        Selection.Font.FontStyle = "Bold"
        Selection.Font.ColorIndex = 2 ' White
        Selection.Interior.ColorIndex = 1 ' Black
        Exit Sub
    End If
End Sub
Sub startclock()
 DrawClock
 blnClockRunning = True
 clock
End Sub
Sub clock()
 If blnClockRunning = False Then Exit Sub
 sTime = Format(Now(), "hh:mm:ss")
 ActiveWorkbook.Worksheets(1).Cells(1, 1).Value = sTime
 SecondHand.IncrementRotation (6)
 If Mid(sTime, 7, 2) = "00" Then MinuteHand.IncrementRotation (6)
 If Mid(sTime, 5, 1) = "0" And Mid(sTime, 7, 2) = "00" Then HourHand.IncrementRotation (6)
 Application.OnTime (Now() + TimeSerial(0, 0, 1)), "Sheet1.clock"
End Sub
Sub stopclock()
 blnClockRunning = False
End Sub
Sub DrawClock()
    ActiveSheet.Shapes.SelectAll  '*** warning DELETE all Shapes
    Selection.Delete
    Set ws = Worksheets(1)
    With ws.Shapes.AddShape(msoShapeOval, 45, 30, 60, 60)
        .Line.Visible = 1
        .Fill.ForeColor.RGB = RGB(255, 255, 255)
    End With
    With ws.Shapes.AddShape(msoShapeRectangle, 75, 30, 1, 30)
        .Line.Visible = 0
        .Fill.ForeColor.RGB = RGB(0, 0, 0)
        .Name = "Second"
    End With
    With ws.Shapes.AddShape(msoShapeRectangle, 75, 60, 1, 30)
        .Line.Visible = 0
        .Fill.Transparency = 1
        .Name = "SHand"
    End With
    With ws.Shapes.AddShape(msoShapeRectangle, 75, 30, 2, 30)
        .Line.Visible = 0
        .Fill.ForeColor.RGB = RGB(0, 0, 0)
        .Name = "Minute"
    End With
    With ws.Shapes.AddShape(msoShapeRectangle, 75, 60, 2, 30)
        .Line.Visible = 0
        .Fill.Transparency = 1
        .Name = "MHand"
    End With
    With ws.Shapes.AddShape(msoShapeRectangle, 75, 45, 2, 15)
        .Line.Visible = 0
        .Fill.ForeColor.RGB = RGB(0, 0, 0)
        .Name = "Hour"
    End With
    With ws.Shapes.AddShape(msoShapeRectangle, 75, 60, 2, 15)
        .Line.Visible = 0
        .Fill.Transparency = 1
        .Name = "HHand"
    End With
    sTime = Format(Now(), "HH:mm:ss")
    Set SecondHand = ws.Shapes.Range(Array("Second", "SHand"))
    SecondHand.Group
    SecondHand.IncrementRotation ((Mid(sTime, 7, 2) - 1) * 6)
    Set MinuteHand = ws.Shapes.Range(Array("Minute", "MHand"))
    MinuteHand.Group
    MinuteHand.IncrementRotation (Mid(sTime, 4, 2) * 6)
    Set HourHand = ws.Shapes.Range(Array("Hour", "HHand"))
    HourHand.Group
    HourHand.IncrementRotation ((Mid(sTime, 1, 2)) * 30)
    HourHand.IncrementRotation ((Mid(sTime, 4, 1)) * 6)
End Sub