I'm sure there are several ways of doing it with VBA.
One would be to set the show up in Kiosk mode so that the user can only
navigate using buttons that you supply.
Then instead of using the usual Next/Previous buttons, you'd use buttons
that trigger VBA macros in the presentation.
The Next macro might look something like this (scraped off top of head
.. not tested code):
Sub Next (oShp as Shape)
Dim lCurrentSlide as Long
lCurrentSlide = oSh.Parent.SlideIndex
If ActivePresentation.Slides.Count > lCurrentSlide Then
ActiveWindow.View.GoToSlide(lCurrentSlide + 1)
Else
' user's on the last slide already
With ActivePresentation
.Tags.Add "Completed", "YES"
End With
End If
End Sub
The Next or Start Show button on the first slide would reset any
variables or tags from earlier runs:
Sub StartShow
With ActivePresentation
.Tags.Add "Completed", "NO"
End With
End Sub
Now the fact that they've completed the show has been recorded in the
presentation itself. What do you need to do about it next?
Save the presentation under the user's name or ...?