@root "Возможно, новая версия PowerPoint может назначать теги / категории слайдам"
Любая версия Windows начиная с '97 и далее может назначать несколько «тегов» для презентаций, слайдов или фигур на слайдах. Я вполне уверен, что то же самое относится и к версиям Mac PPT, кроме 2008 года, в которых не было VBA. Там нет пользовательского интерфейса для тегов; вам нужно использовать VBA или другие языки программирования для работы с ними.
После того, как слайд помечен, не имеет значения, перемещаете ли вы его внутри шоу; тег остается со слайдом.
Например, используя VBA для каждого отдельного шоу в презентации, вы скрываете все слайды в шоу, а затем запускаете TagSlides:
Sub TagSlides() ' NOTE: mark all the slides in this show ' as hidden before running this code Dim sShowName As String Dim oSl As Slide ' Get a name for this show/set of slides ' Quit if user enters nothing sShowName = InputBox("Name of show", "Show name") If Len(sShowName) = 0 Then Exit Sub End If For Each oSl In ActivePresentation.Slides ' If it's hidden, tag it with the show name If oSl.SlideShowTransition.Hidden Then oSl.Tags.Add Ucase(sShowName), "Y" ' you could run the same code to set the tag value ' to "" if you want to remove the tag End If Next End Sub
Сделав это, вы можете запустить его, который попросит вас указать название шоу, которое вы хотите использовать, а затем сделать все слайды, которые принадлежат этому шоу, видимыми, скрыть остальные.
Sub MakeShowVisible() Dim sShowName As String Dim oSl As Slide ' Get a name for this show/set of slides ' Quit if user enters nothing sShowName = InputBox("Name of show", "Show name") If Len(sShowName) = 0 Then Exit Sub End If For Each oSl In ActivePresentation.Slides If Len(oSl.Tags(Ucase(sShowName))) > 0 Then ' the slide belongs to the show so unhide it oSl.SlideShowTransition.Hidden = False Else ' not part of the show; hide it oSl.SlideShowTransition.Hidden = True End If Next End Sub
Один слайд может принадлежать нескольким шоу. Если вам нужно добавить новые слайды в шоу, сначала запустите HideShow ниже, который скроет все слайды, которые в данный момент находятся в данном шоу, затем скройте новые слайды и снова запустите TagSlides.
Sub HideShow() Dim sShowName As String Dim oSl As Slide ' Get a name for this show/set of slides ' Quit if user enters nothing sShowName = InputBox("Name of show", "Show name") If Len(sShowName) = 0 Then Exit Sub End If For Each oSl In ActivePresentation.Slides If Len(oSl.Tags(sShowName)) > 0 Then ' the slide belongs to the show so hide it oSl.SlideShowTransition.Hidden = True Else ' not part of the show; UNhide it oSl.SlideShowTransition.Hidden = False End If Next End Sub