Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 11.05.2018, 13:52   #1
Mix100
Пользователь
 
Регистрация: 28.03.2016
Сообщений: 12
По умолчанию Сохранить файл Word в PDF с нужным названием

Сохранить файл Word в PDF с нужным названием и в нужное место

Всем привет, столкнулся с постоянной рутиной - отсылка ком.предложений и заявки на товар.
Постоянно приходится файл Word сохранять в PDF с нужным названием и в нужное место на пк.
Можно ли подсказать макрос, который бы разместился в самом файле и делал эту работу автоматически ?
Mix100 вне форума Ответить с цитированием
Старый 11.05.2018, 14:05   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

искать не пробовали? вот, например, первая же ссылка
https://www.thespreadsheetguru.com/t...in-same-folder
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.05.2018, 14:43   #3
Mix100
Пользователь
 
Регистрация: 28.03.2016
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
искать не пробовали? вот, например, первая же ссылка
https://www.thespreadsheetguru.com/t...in-same-folder
Скопировал этот код в модуль файла КП.docm, запуск выдает ошибку сразу
Mix100 вне форума Ответить с цитированием
Старый 11.05.2018, 14:52   #4
Mix100
Пользователь
 
Регистрация: 28.03.2016
Сообщений: 12
По умолчанию

Все работает, надо было еще и функцию разместить. Потестирую, отпишусь
Mix100 вне форума Ответить с цитированием
Старый 11.05.2018, 15:10   #5
Mix100
Пользователь
 
Регистрация: 28.03.2016
Сообщений: 12
По умолчанию

По данному макросу возникла небольшая корректировка..

Что на что заменить в коде, что бы сохранять файл pdf в нужную папку (а не местоположения файла word) ?

Код:
Sub Word_ExportPDF()
'PURPOSE: Generate A PDF Document From Current Word Document
'NOTES: PDF Will Be Saved To Same Folder As Word Document File
'SOURCE: www.TheSpreadsheetGuru.com/the-code-vault

Dim CurrentFolder As String
Dim FileName As String
Dim myPath As String
Dim UniqueName As Boolean

UniqueName = False

'Store Information About Word File
  myPath = ActiveDocument.FullName
  CurrentFolder = ActiveDocument.Path & "\"
  FileName = Mid(myPath, InStrRev(myPath, "\") + 1, _
   InStrRev(myPath, ".") - InStrRev(myPath, "\") - 1)

'Does File Already Exist?
  Do While UniqueName = False
    DirFile = CurrentFolder & FileName & ".pdf"
    If Len(Dir(DirFile)) <> 0 Then
      UserAnswer = MsgBox("File Already Exists! Click " & _
       "[Yes] to override. Click [No] to Rename.", vbYesNoCancel)
      
      If UserAnswer = vbYes Then
        UniqueName = True
      ElseIf UserAnswer = vbNo Then
        Do
          'Retrieve New File Name
            FileName = InputBox("Provide New File Name " & _
             "(will ask again if you provide an invalid file name)", _
             "Enter File Name", FileName)
          
          'Exit if User Wants To
            If FileName = "False" Or FileName = "" Then Exit Sub
        Loop While ValidFileName(FileName) = False
      Else
        Exit Sub 'Cancel
      End If
    Else
      UniqueName = True
    End If
  Loop
  
'Save As PDF Document
  On Error GoTo ProblemSaving
    ActiveDocument.ExportAsFixedFormat _
     OutputFileName:=CurrentFolder & FileName & ".pdf", _
     ExportFormat:=wdExportFormatPDF
  On Error GoTo 0

'Confirm Save To User
  With ActiveDocument
    FolderName = Mid(.Path, InStrRev(.Path, "\") + 1, Len(.Path) - InStrRev(.Path, "\"))
  End With
  
  MsgBox "PDF Saved in the Folder: " & FolderName

Exit Sub

'Error Handlers
ProblemSaving:
  MsgBox "There was a problem saving your PDF. This is most commonly caused" & _
   " by the original PDF file already being open."
  Exit Sub

End Sub
Mix100 вне форума Ответить с цитированием
Старый 11.05.2018, 15:23   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Mix100 Посмотреть сообщение
что бы сохранять файл pdf в нужную папку
вместо
Цитата:
Сообщение от Mix100 Посмотреть сообщение
Код:
CurrentFolder = ActiveDocument.Path & "\"
Код:
CurrentFolder =""D:\Нужная Папка\all_my_pdf_files\"
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.05.2018, 15:45   #7
Mix100
Пользователь
 
Регистрация: 28.03.2016
Сообщений: 12
По умолчанию

Serge_Bliznykov, спасибо огромное. Последний момент.

Как добавить к названию сохраняемого файла, информацию:
1. Идеально, если это текст из определенного поля этого же листа
2. Крайний вариант, дата с временем (что бы все сохраненные файлы не дублировались по названию и не перезаписывались)
Mix100 вне форума Ответить с цитированием
Старый 11.05.2018, 15:57   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Mix100 Посмотреть сообщение
1. Идеально, если это текст из определенного поля этого же листа
а что такое "определённое поле листа" ?
дайте пример файла с таким полем.


Цитата:
Сообщение от Mix100 Посмотреть сообщение
2. Крайний вариант, дата с временем (что бы все сохраненные файлы не дублировались по названию и не перезаписывались)
Код:
FileName = Format(Now(), "YYYYMMDDHHMMSS")
Serge_Bliznykov вне форума Ответить с цитированием
Старый 11.05.2018, 16:29   #9
Mix100
Пользователь
 
Регистрация: 28.03.2016
Сообщений: 12
По умолчанию

Попробую загрузить файл (если че ссылка https ://yadi.sk/d/kKVcRYGh3Vj3Rk) и прописать

Задача:
Например в тексте письма в начале есть надпись Исх.№452 и сам файл назван "КП от ООО XXX.docm"
Соответственно файл сохранится так "КП от ООО XXX №452.pdf
Mix100 вне форума Ответить с цитированием
Старый 11.05.2018, 17:20   #10
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Mix100 Посмотреть сообщение
Например в тексте письма в начале есть надпись Исх.№452
это уже искусственный интеллект и нейронные сети нужны.
А что если нет? А если не в начале? а если написано "исходящий"...
но, в общем случае, конечно, макрос может получить доступ к содержимому и искать там нужный текст).
Serge_Bliznykov вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
C, печать матрицы в файл с прочитанным названием Bombiman Помощь студентам 6 08.01.2016 14:22
как сохранить байтовый массив в pdf файл? dima1257 C# (си шарп) 5 14.01.2014 14:25
Программно сохранить всю книгу в один файл PDF uralshans Microsoft Office Excel 16 22.09.2013 15:16
Сохранить с нужным именем maikoms Microsoft Office Excel 4 20.03.2009 11:44
Выгрузка в файл с динамическим названием. Квэнди БД в Delphi 0 24.06.2007 15:39