Печать определенного листа в десятках и сотнях документов

Столкнулся с проблемой: необходимо перепечатать первый лист в разных документах. Ладно, если этих документов 10. Но их 200!
Открывать каждый — не наш путь. Вот работающее решение на VBA и скрипт в приложении.

Печать сотен документов без их открытия
Печать заданных листов, диапазонов листов

Код:
Private Sub CommandButton1_Click()
  Dim sMyDir As String
  Dim sDocName As String
  Dim СписокФайлов As FileDialogSelectedItems
  Set СписокФайлов = GetFilenamesCollection(«Выберите файлы для печати:», ThisDocument.Path)   ‘ выводим окно выбора
  If СписокФайлов Is Nothing Then Exit Sub  ‘ выход, если пользователь отказался от выбора файлов
  strA = InputBox(«Какие страницы печатать?», «Опция печати», «1»)
  For Each File In СписокФайлов
        Application.PrintOut Range:=wdPrintRangeOfPages, Pages:=strA, FileName:=File
  Next
End Sub

Function GetFilenamesCollection(Optional ByVal Title As String = «Выберите файлы для обработки», _
                             Optional ByVal InitialPath As String = «c:») As FileDialogSelectedItems
    ‘ функция выводит диалоговое окно выбора нескольких файлов с заголовком Title,
    ‘ начиная обзор диска с папки InitialPath
    ‘ возвращает массив путей к выбранным файлам, или пустую строку в случае отказа от выбора
    With Application.FileDialog(3) ‘ msoFileDialogFilePicker
        .ButtonName = «Выбрать»: .Title = Title: .InitialFileName = InitialPath
        If .Show <> -1 Then Exit Function
        Set GetFilenamesCollection = .SelectedItems
    End With
End Function

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *