You haven't given us much to work with here. The data for the category/subcategory/option has to come from somewhere and will be an absolute pain to maintain if you don't have good rigour in setting up your file and maintaining it.
It will probably be most efficient to harvest this information from the slides themselves. Like reading through the slides to find out what layout is assigned, what is typed in the title or what is in the slide Notes page. This would allow the macro to build the lists dynamically.
To get you started, this is the code I played with to read the Titles on the slides and return these as a list and allow the user to type in a slide number to jump to it.
Code:
Private Sub cbCat_Click()
Dim sMsg As String, aSlide As Slide, sList As String
For Each aSlide In ActivePresentation.Slides
Debug.Print aSlide.SlideIndex, aSlide.Shapes.Title.TextFrame.TextRange.Text
sList = sList & aSlide.SlideIndex & vbTab & aSlide.Shapes.Title.TextFrame.TextRange.Text & vbCr
Next aSlide
sMsg = InputBox(sList, "Type slide number")
SlideShowWindows(1).View.GotoSlide sMsg
End Sub
If you need further assistance, perhaps you could post a sample presentation so we can see where the list hierarchy information can come from.