2014-12-16 5 views
0

естьИмя файла отдельных разделенных файлов в PowerPoint

У меня проблема в MS PowerPoint. В настоящее время я работаю с десятком файлов с не менее чем 100 слайдами. Мне нужно создать отдельные слайды в качестве отдельных файлов для загрузки. У меня есть код для разбивки файла на отдельные слайды. Запрос заключается в том, как я могу переименовать эти файлы автоматически с помощью кода VBA?

Каждый слайд имеет заголовок в текстовом поле, а форма и размер текстового поля заголовка согласованы между колодами. Как обеспечить, чтобы отдельные созданные файлы сохранялись с именем «Название слайда» в качестве имени файла?

В настоящее время, файл сохраняется как «Оригинальное название файла п -. п»

бы высоко ценим вашу помощь в этом.

Ниже приводится код, который я нашел в Интернете, чтобы разделить слайд-колоду на несколько отдельных файлов (один слайд eaach, для моей цели):

Sub SplitFile() 

    Dim lSlidesPerFile As Long 
    Dim lTotalSlides As Long 
    Dim oSourcePres As Presentation 
    Dim otargetPres As Presentation 
    Dim sFolder As String 
    Dim sExt As String 
    Dim sBaseName As String 
    Dim lCounter As Long 
    Dim lPresentationsCount As Long  ' how many will we split it into 
    Dim x As Long 
    Dim lWindowStart As Long 
    Dim lWindowEnd As Long 
    Dim sSplitPresName As String 

    On Error GoTo ErrorHandler 

    Set oSourcePres = ActivePresentation 
    If Not oSourcePres.Saved Then 
     MsgBox "Please save your presentation then try again" 
     Exit Sub 
    End If 

    lSlidesPerFile = CLng(InputBox("How many slides per file?", "Split Presentation")) 
    lTotalSlides = oSourcePres.Slides.Count 
    sFolder = ActivePresentation.Path & "\" 
    sExt = Mid$(ActivePresentation.Name, InStr(ActivePresentation.Name, ".") + 1) 
    sBaseName = Mid$(ActivePresentation.Name, 1, InStr(ActivePresentation.Name, ".") - 1) 

    If (lTotalSlides/lSlidesPerFile) - (lTotalSlides \ lSlidesPerFile) > 0 Then 
     lPresentationsCount = lTotalSlides \ lSlidesPerFile + 1 
    Else 
     lPresentationsCount = lTotalSlides \ lSlidesPerFile 
    End If 

    If Not lTotalSlides > lSlidesPerFile Then 
     MsgBox "There are fewer than " & CStr(lSlidesPerFile) & " slides in this presentation." 
     Exit Sub 
    End If 

    For lCounter = 1 To lPresentationsCount 

     ' which slides will we leave in the presentation? 
     lWindowEnd = lSlidesPerFile * lCounter 
     If lWindowEnd > oSourcePres.Slides.Count Then 
      ' odd number of leftover slides in last presentation 
      lWindowEnd = oSourcePres.Slides.Count 
      lWindowStart = ((oSourcePres.Slides.Count \ lSlidesPerFile) * lSlidesPerFile) + 1 
     Else 
      lWindowStart = lWindowEnd - lSlidesPerFile + 1 
     End If 

     ' Make a copy of the presentation and open it 
     sSplitPresName = sFolder & sBaseName & _ 
       "_" & CStr(lWindowStart) & "-" & CStr(lWindowEnd) & "." & sExt 
     oSourcePres.SaveCopyAs sSplitPresName, ppSaveAsDefault 
     Set otargetPres = Presentations.Open(sSplitPresName, , , True) 

     With otargetPres 
      For x = .Slides.Count To lWindowEnd + 1 Step -1 
       .Slides(x).Delete 
      Next 
      For x = lWindowStart - 1 To 1 Step -1 
       .Slides(x).Delete 
      Next 
      .Save 
      .Close 
     End With 

    Next ' lpresentationscount 

NormalExit: 
    Exit Sub 
ErrorHandler: 
    MsgBox "Error encountered" 
    Resume NormalExit 
End Sub 

ответ

0

Это его забрать текст из названия и использовать его в качестве имени выходного представления:

sSplitPresName = sFolder _ 
    & oSourcePres.Slides(lWindowStart).Shapes.Title.TextFrame.TextRange.Text _ 
    & "." & sExt 

Если скат не имеет названия, вы получите сообщение об ошибке, так что вам нужно проверить, что и решить, как назвать раздельную презентацию в таком случае. Может быть:

sSplitPresName = sFolder _ 
    & "Slide-" & Cstr(lWindowStart) _ 
    & "." & sExt 

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

Смежные вопросы