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