Удаление заметок о динамиках из презентаций программно

StackOverflow https://stackoverflow.com/questions/2953659

  •  22-10-2019
  •  | 
  •  

Вопрос

У меня есть много презентаций, которые необходимо поделиться за пределами моей компании, и мне нужен способ пройти через все заметки динамиков и автоматически их удалить. Есть ли способ сделать это в VBA? Я ищу это, но, кажется, ничего не могу найти.

Это было полезно?

Решение

Этот парень написал сценарий, который удаляет заметки динамика из всех файлов PowerPoint в каталоге. Вы должны быть в состоянии адаптировать его в соответствии с вашими потребностями.

Sub RemoveSpeakerNotes()
  Set objPPT = CreateObject("PowerPoint.Application")
  objPPT.Visible = True
  strComputer = "."
  Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2")
  Set FileList = objWMIService.ExecQuery _
    ("ASSOCIATORS OF {Win32_Directory.Name='E:\DirectoryContainingPresentations'} Where " _
    & "ResultClass = CIM_DataFile")
  For Each objFile In FileList
    If objFile.Extension = "pptx" Or objFile.Extension = "ppt" Then
      Set objPresentation = objPPT.Presentations.Open(objFile.Name)
      Set colSlides = objPresentation.Slides
      On Error Resume Next
      For Each objSlide In colSlides
        objSlide.NotesPage.Shapes(2).TextFrame.TextRange = ""
      Next
      objPresentation.Save
      objPresentation.Close
    End If
  Next
  MsgBox ("Done")
End Sub
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top