Есть ли простой способ объединить несколько файлов PowerPoint в один файл?

Под ms dos для бинарных файлов вы можете скопировать их, используя /b, или, в соответствии с этим вопросом, просто используйте copy

 copy /b <source1> + <source2> [....] <targetfile>
 // or
 copy *.csv new.csv

Я попробовал более позднюю copy *.pptx new.pptx но это не сработало - полученный pptx был пуст. Первый подход с использованием copy /b требует ввода каждого имени файла, что является громоздким, и я не пробовал.

У вас есть идеи, как я могу справиться с этим?

1 ответ1

1

Да, вы можете, но вы не можете сделать это с Binary Appending.

Зачем...??
Потому что CSV - это файл значений, разделенных запятыми, который позволяет сохранять данные в формате таблицы. CSV выглядят как электронная таблица, но с расширением .csv. Поэтому, когда вы добавляете их, вы все равно можете использовать их в Excel. Но .pptx имеют разные форматы, которые не так просты. следовательно, двоичное добавление не будет работать.

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

Следуйте шагам:

  1. Создать новую папку.
  2. Чтобы добавить несколько файлов, сохраните текущий файл в новой папке, в которую вы хотите вставить слайды из других файлов.

  3. Скопируйте все остальные файлы .pptx или .ppt в новую папку. Откройте документ, в который вы хотите добавить файлы.

  4. Теперь нажмите ALT+F11, чтобы запустить редактор VBA.

  5. Или выберите Файл | Варианты | Настройте ленту и поставьте галочку рядом с "Разработчик" в списке в разделе "Настройка ленты". Закройте диалоговое окно параметров, перейдите на вкладку Разработчик, затем щелкните Visual Basic, чтобы запустить редактор.

  6. В редакторе VBA убедитесь, что ваша презентация выделена в левой панели.
    Выберите «Вставить, модуль» в строке меню, чтобы вставить новый модуль кода в ваш проект.

  7. Вставьте этот код и измените " *.PPT "к" *.PPTX "или что угодно при необходимости

    Sub InsertAllSlides()
    '  Insert all slides from all presentations in the same folder as this one
    '  INTO this one; do not attempt to insert THIS file into itself, though.
    
        Dim vArray() As String
        Dim x As Long
    
        ' Change "*.PPT" to "*.PPTX" or whatever if necessary:
        EnumerateFiles ActivePresentation.Path & "\", "*.PPT", vArray
    
        With ActivePresentation
            For x = 1 To UBound(vArray)
                If Len(vArray(x)) > 0 Then
                    .Slides.InsertFromFile vArray(x), .Slides.Count
                End If
            Next
        End With
    
    End Sub
    
    Sub EnumerateFiles(ByVal sDirectory As String, _
        ByVal sFileSpec As String, _
        ByRef vArray As Variant)
        ' collect all files matching the file spec into vArray, an array of strings
    
        Dim sTemp As String
        ReDim vArray(1 To 1)
    
        sTemp = Dir$(sDirectory & sFileSpec)
        Do While Len(sTemp) > 0
            ' NOT the "mother ship" ... current presentation
            If sTemp <> ActivePresentation.Name Then
                ReDim Preserve vArray(1 To UBound(vArray) + 1)
                vArray(UBound(vArray)) = sDirectory & sTemp
            End If
            sTemp = Dir$
        Loop
    
    End Sub
    
  8. Чтобы убедиться в отсутствии серьезных синтаксических проблем с кодом, выберите «Отладка, Компиляция» в строке меню.
  9. Если произошла ошибка, проверьте код еще раз, либо нажмите кнопку "Выполнить".
  10. Слайды будут добавлены в открытый документ.

ПРИМЕЧАНИЕ. Фоновые изображения и некоторые другие элементы не добавляются при добавлении слайдов из другого файла.

Посмотреть и узнать больше от:

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