Keep Score with Static Variables
Problem
You need to maintain a score or count using VBA in your PowerPoint presentation but you don't want to put an instance of the necessary code in the macro you run when each shape is clicked.
Solution
Use a single function with a Static variable to maintain the score. Call the function from any other code when you want to add to, subtract from or reset the score.
Sub ChangeScoreExample()
' The AddToScore function does the real work
' This is an example of how you'd call the function:
' Optionally, reset the score to 0
AddToScore(0)
' Add 20 to the score and display the new score
MsgBox "Your score is now " & CStr(AddToScore(20))
End Sub
Function AddToScore(iIncrement As Integer) As Integer
' Maintains current score as a Static variable
' Changes the score by iIncrement or resets it to 0 if iIcrement - 0
' Returns the new score to the calling routine
Static iScore As Integer
' provide a way to reset the score mid-run if need be
If iIncrement = 0 Then
iScore = 0
Else ' note that you can pass a negative score as well
iScore = iScore + iIncrement
End If
AddToScore = iScore
End Function
See How do I use VBA code in PowerPoint? to learn how to use this example code.
Search terms:score,static,count