1

Есть ли способ легко скрыть определенный фиксированный набор слайдов PowerPoint, поэтому мне не нужно выбирать весь этот набор каждый раз, когда я хочу их скрыть? Он должен основываться на содержании именно этих слайдов, а не на их количестве. (Потому что номера меняются, когда другие слайды вставляются / удаляются.)

Может быть, новая версия PowerPoint может назначать теги / категории слайдам, а встроенная функция PowerPoint может скрывать слайды с этим тегом? Или к заметкам докладчика можно добавить тег - может ли макрос прочитать его и скрыть соответствующие слайды, как?

Предыстория: у меня есть набор слайдов PowerPoint, которые я постоянно обновляю и на которых я делаю доклады для немного другой целевой аудитории по частично перекрывающимся темам. Иногда я скрываю номер слайдов, скажем, 3,7,15,20,25,30. В другой день я показываю их, но скрываю слайды 2,4,10,17. Затем я улучшаю слайды 11,12,14. Затем я показываю все, кроме скрытия слайдов 3,7,15,20,25,30.

2 ответа2

2

@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
1

Я делаю это с текстом на страницах заметок. Что-то вроде

~!hidden

(потому что ~! шаблон, который просто не появится ни в одном тексте, который я когда-либо буду использовать)

Затем перейдите к представлению Сортировщик слайдов и найдите все вхождения ~!hidden и нажмите кнопку "Скрыть слайд". Готово.

Я использую подобные вещи, чтобы идентифицировать подмножества слайдов для других целей.

Конечно, если вы хотите, чтобы на страницах заметок содержались заметки, которые печатаются вместе с вашим раздаточным материалом, вам придется немного подумать. Довольно легко поместить все эти "теги" в конец страницы заметок, где большинство читателей будут игнорировать их. Если они действительно беспокоят вас на страницах напечатанных заметок, вы можете написать небольшой VBAscript, чтобы избавиться от них.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .