Let Clippy dance

How to display all the animations of the Office Assistant

Article contributed by Astrid Zeelenberg

In Office 97 there are 34 different animations for the Assistant. With the following code you can show them all.

In Office 2000 there are 35 – the extra one is msoAnimationRestPose, which you can add to the following code if you want to.

Sub LetClippyDance()

Dim oAssistant As Assistant
Dim i As Long
Dim arAnimation() As Long
ReDim arAnimation(33)

arAnimation(0) = msoAnimationAppear
arAnimation(1) = msoAnimationBeginSpeaking
arAnimation(2) = msoAnimationCharacterSuccessMajor
arAnimation(3) = msoAnimationCheckingSomething
arAnimation(4) = msoAnimationDisappear
arAnimation(5) = msoAnimationEmptyTrash
arAnimation(6) = msoAnimationGestureDown
arAnimation(7) = msoAnimationGestureLeft
arAnimation(8) = msoAnimationGestureRight
arAnimation(9) = msoAnimationGestureUp
arAnimation(10) = msoAnimationGetArtsy
arAnimation(11) = msoAnimationGetAttentionMajor
arAnimation(12) = msoAnimationGetAttentionMinor
arAnimation(13) = msoAnimationGetTechy
arAnimation(14) = msoAnimationGetWizardy
arAnimation(15) = msoAnimationGoodbye
arAnimation(16) = msoAnimationGreeting
arAnimation(17) = msoAnimationIdle
arAnimation(18) = msoAnimationListensToComputer
arAnimation(19) = msoAnimationLookDown
arAnimation(20) = msoAnimationLookDownLeft
arAnimation(21) = msoAnimationLookDownRight
arAnimation(22) = msoAnimationLookLeft
arAnimation(23) = msoAnimationLookRight
arAnimation(24) = msoAnimationLookUp
arAnimation(25) = msoAnimationLookUpLeft
arAnimation(26) = msoAnimationLookUpRight
arAnimation(27) = msoAnimationPrinting
arAnimation(28) = msoAnimationSaving
arAnimation(29) = msoAnimationSearching
arAnimation(30) = msoAnimationSendingMail
arAnimation(31) = msoAnimationThinking
arAnimation(32) = msoAnimationWorkingAtSomething
arAnimation(33) = msoAnimationWritingNotingSomething

With Application.Assistant
    .Visible = True

    For i = LBound(arAnimation) To UBound(arAnimation)
        .Animation = arAnimation(i)
        'Show the animation for one second
        HaveABreak
    Next i

    'Hide the assistant
    .Visible = False
End With

End Sub


Sub HaveABreak()

Dim PauseTime As Long
Dim Start As Long
  PauseTime = 1
  Start = Timer
  Do While Timer < Start + PauseTime
      DoEvents
  Loop

End Sub