VBA Макрос: Сохранение файлов Word в PDF с именем из списка.

Автор siv14, 12 сентября 2017, 15:04

siv14

Есть документ в котором кроме текста есть "Поле со списком". Надо сохранить этот документ в PDF формате, но в имя файла подставить текст из "Поля со списком".
Кроме того, в имя файла надо подставить имя ворд-файла и дату. Например, имя ворд-файла 46520_info.docx. В нем из раскрывающегося списка выбираю текст: книга. Надо чтобы документ сохранился под именем: 46520_info_Дата_книга.pdf

Сохранять нужно в этой папке: "d:\$Макросы".
Форматы даты: Format(Now, "mmdd")

Администратор

Списку можно назначить"тег": щёлкните по списку (или внутри, или по границе) - вкладка "Разработчик" (по умолчанию этой вкладки нет, её вам надо самим отобразить) - группа "Элементы управления" - Свойства - появится диалог - Тег.

Затем макрос может искать этот список по этому тегу.
Можно в вашей задаче назначить тег или нет?


Администратор

Путь в макросе укажите свой. У списка сделайте тег "список".

Макрос
Sub макрос()

    Dim path As String, DocName As String, ContControl As ContentControl
   
   
    '1. Запись в переменную пути, где надо сохранить файл.
        ' На конце слеш не указывайте.
    path = "C:\Users\User\Desktop"
   
    '2. Запись в переменную "DocName" имени активного файла без расширения.
    DocName = ActiveDocument.Name
    DocName = Left(DocName, InStrRev(DocName, ".") - 1)
   
    '3. Присваиваем имя "ContControl" элементу управления с тегом "список".
    For Each ContControl In ActiveDocument.ContentControls
        If ContControl.Tag = "список" Then
            Exit For
        End If
    Next ContControl
   
    '4. Сохранение файла в pdf-формате.
    ActiveDocument.ExportAsFixedFormat _
        OutputFileName:=path & "\" & _
                        DocName & "_" & Format(Date, "mmdd") & "_" & _
                        ContControl.Range.Text & ".pdf", _
        ExportFormat:=wdExportFormatPDF
   
End Sub
[свернуть]

siv14