Vba сохранить слово в формате pdf

Обновлено: 21.11.2024

Преобразуйте все, что Word может открыть, в файл PDF! Используйте Word, чтобы открыть файл, а затем сохраните его в формате PDF с помощью VBA.

Запуск в любом приложении Office, таком как Access, Excel, PowerPoint, Visio, Project, . или из Word в активном документе, используя специальную версию, начинающуюся с "RunFromWord".

Снимки экрана

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

Отчет календаря

Чтобы самостоятельно создать календарный отчет из запроса в Access, загрузите этот бесплатный инструмент и используйте требуемые псевдонимы для имен вычисляемых полей.

На следующем снимке экрана показан документ Word, показывающий SQL для всех запросов в базе данных — это был документ Word . теперь это еще и PDF.

Примеры из Access


Откройте sPathFile как документ HML (piOpenFormat=wdOpenFormatWebPages=7) в Word. Ориентация альбомная (piOrientation=wdOrientLandscape=1). Имя будет присвоено автоматически. Экспортируйте в PDF и откройте PDF-файл, когда закончите.

Application.FollowHyperlink Word_SavePDF(sPathFile,7,1)

Преобразование документа Word в PDF. Открытый формат — автоматический (по умолчанию), ориентация — книжная (по умолчанию). Автоматическое присвоение имени (по умолчанию). Не показывать сообщение, когда сделано (false). Откройте файл PDF.

Application.FollowHyperlink Word_SavePDF("c:\path\Mydocument.docx", , , , False)

Примеры из Word

Если вы работаете в Word и хотите использовать ActiveDocument, запустите процедуру, разработанную специально для Word, RunFromWord_ActiveDocument_ExportPDF

Вызов RunFromWord_ActiveDocument_ExportPDF(ActiveDocument)

Вызов RunFromWord_ActiveDocument_ExportPDF(ActiveDocument, False)
ActiveDocument.FollowHyperlink ActiveDocument.Path

Запуск и открытие из Excel

Запустите Word_SavePDF, чтобы вернуть путь и имя файла. В Excel вы можете использовать FollowHyperlink из объекта Workbook (или ActiveWorkbook).

Запустить и открыть из PowerPoint

Запустите Word_SavePDF, чтобы вернуть путь и имя файла. В PowerPoint вы можете использовать FollowHyperlink из объекта Presentation (или ActivePresentation).

Логика: Word_SavePDF

Отсутствует обработчик ошибок.

Установите константу для преобразования дюймов в пункты. В дюйме 72 точки.

Создайте путь\имя файла для PDF, если он не был передан. Если файл уже существует, удалите его.

Вызовите WordOpen, чтобы открыть Word.

Откройте документ. Обязательно отправьте WdOpenFormat, если документ представляет собой веб-страницу или что-то еще, что Word может открыть только в том случае, если указан формат.

Установите книжную ориентацию (если параметром piOrientation не был указан альбомный), установите узкие поля (1/2 дюйма по всему периметру). Word ожидает баллы за значение.

Экспортируйте документ в формат PDF, используя ExportAsFixedFormat.

Вызовите WordClose, чтобы выйти и освободить Word.

Настройте возврат функции на путь и имя файла PDF.

Параметры

  • psPathFile — это то, что вы хотите преобразовать
  • piOpenFormat необходимо указать, если документ не в формате Word или в формате, который он может определить автоматически. См. справку: WdOpenFormat
  • piOrientation имеет значение 0 для книжной ориентации (wdOrientPortrait — значение по умолчанию), wdOrientLandscape — 1.
  • psPathFilePDF — это имя создаваемого PDF-файла. Если не указано, имя будет создано автоматически (по умолчанию) и помещено в ту же папку.
  • pBooShowMessage имеет значение True (по умолчанию), чтобы показать сообщение по завершении.

Предыстория

В этот день в канун Рождества (когда я начал этот пример) я хочу показать, как конвертировать файлы в PDF, а также обобщить код, опубликованный во время Адвента. поэтому календарь, созданный для веб-страницы, преобразованной в PDF, показался хорошим примером для начала! Самая большая радость Рождества — это дарить другим не только в это время года, но и постоянно. Мы все связаны.

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

Сегодня, когда я наконец публикую это, наступил первый день Рождества.

Мой последний пост в этой серии, посвященный Рождеству, будет посвящен тому, как воспроизводить звуки, поскольку музыка — моя большая страсть. Есть 12 дней Рождества. код будет опубликован до окончания Рождества ~

Я также надеюсь, что другие пользователи также поделятся ссылками на указатель кода.

Ссылки

Документы / Справочник по Office VBA / Word / Объектная модель / Перечисления / WdOpenFormat

Документы / Справочник по Office VBA / Word / Объектная модель / Перечисления / WdExportFormat

Документы / Справочник по Office VBA / Word / Объектная модель / Объект документа / Методы / ExportAsFixedFormat

Документы / Справочник по Office VBA / Word / Объектная модель / Объект документа / Методы / FollowHyperlink

Поделиться с другими

вот ссылка для копирования:

У вас есть, что сказать или чем поделиться?

Интересно услышать от вас. Было что-то непонятно? Вы нашли ошибку? Является ли объяснение неправильным или недостаточным? Вы хотите, чтобы код делал больше (всегда больше)?

Некоторые из вас пишут, чтобы поблагодарить и рассказать мне, что вы делаете с Access . Приятно получить обратно эхо. Я хочу, чтобы вы и другие хорошо владели Access и другими приложениями Office, такими как Excel, Word и PowerPoint. и Windows. Воспользуйтесь преимуществами каждой из них, чтобы разумно управлять своей информацией.

Вы разработчик? Хотите поделиться? Электронное письмо с запросом о добавлении ваших страниц в индекс кода.

Пожертвовать

поддержите разработчиков, которые поделятся с вами

Авторское право 2018 г. Crystal Long (strive4peace). Делитесь и используйте свободно, когда вы сохраняете атрибуцию и держите ее открытой. Последнее обновление: декабрь 2018 г.

В Word 2003 в строке меню есть значок. Одним щелчком мыши пользователи могут мгновенно вызвать окно «Сохранить как» и сохранить документ в формате PDF.

Однако, как вы заметили, макет в Word 2010 сильно изменился. И пользователи должны щелкнуть вкладку «Файл», а затем команду «Сохранить как», чтобы вызвать окно «Сохранить как». Кроме того, вам нужно вручную выбрать тип сохранения, прежде чем нажать кнопку «Сохранить».

Со всеми этими кликами это недостаточно быстро. Поэтому в этом посте мы хотели бы показать, как это сделать с помощью макросов.

Макрос 1: быстрый вызов окна «Сохранить как»

  1. В первую очередь перейдите на вкладку «Разработчик», затем нажмите команду «Visual Basic», чтобы открыть редактор VBA. Конечно, 2 клика нужно сделать, когда вкладка «Разработчик» уже отображается. Альтернативный способ — нажать «Alt+ F11». Нажмите «Visual Basic»" svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20viewBox='0%200%20691 %20133'%3E%3C/svg%3E" alt="Нажмите "Разработчик"->Нажмите "Visual Basic"" width="691" height="133" data-lazy-srcset="https://www. datanumen.com/blogs/wp-content/uploads/2017/02/Click-Developer-then-Click-Visual-Basic-5.jpg 691w, https://www.datanumen.com/blogs/wp-content/uploads /2017/02/Click-Developer-then-Click-Visual-Basic-5-300x58.jpg 300 Вт, https://www.datanumen.com/blogs/wp-content/uploads/2017/02/Click-Developer- then-Click-Visual-Basic-5-500x96.jpg 500w" data-lazy-sizes="(max-width: 691px) 100vw, 691px" data-lazy-src="https://www.datanumen.com/ blogs/wp-content/uploads/2017/02/Click-Developer-then-Click-Visual-Basic-5.jpg" />
  2. Во-вторых, нажмите "Обычный" проект.
  3. В-третьих, нажмите «Вставить», а затем выберите «Модуль» в меню списка.
  4. Теперь дважды щелкните модуль, чтобы отобразить область редактирования. Нажмите «Вставить» -> «Модуль»" svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg' %20viewBox='0%200%20289%20175'%3E%3C/svg%3E" alt="Нажмите "Обычный"->Нажмите "Вставить"->Нажмите "Модуль"" width="289" height="175 " data-lazy-src="https://www.datanumen.com/blogs/wp-content/uploads/2017/02/Click-Normal-then-Click-Insert-then-Click-Module-5.jpg" />
  5. Далее вставьте следующие коды:
    1. Затем нажмите "Выполнить".
    2. Появилось окно «Сохранить как». И тип сохранения уже в pdf. Остается только нажать на кнопку «Сохранить». Этот макрос позволяет при необходимости изменить имя файла.

      Макрос 2: прямое сохранение файлов Word в PDF

      Если кто-то захочет сохранить файл напрямую в формате pdf без изменения имени файла, вот нужный макрос.

      1. Прежде всего, повторите первые 4 шага, описанные выше.
      2. Далее вместо этого вставьте следующие коды:
        1. Аналогичным образом нажмите "Выполнить".

        Макрос 3: пакетное преобразование файлов Word Docx в PDF

        1. Сначала поместите все файлы docx в одну папку.
        2. Выполните описанные выше действия, чтобы открыть область редактирования.
        3. Затем вставьте ревущий макрос:
          1. Никогда не забывайте нажимать кнопку "Выполнить".

          Примечание. В кодах «strFolder = «C:\Users\Test\Desktop\Test Files\»» «C:\Users\Test\Desktop\Test Files\»» — это путь к папке. . Не забудьте изменить его соответствующим образом.

          После запуска этого макроса PDF-файлы будут сохранены в той же папке, где находятся документы Word.

          Защитите файлы, как только сможете

          Существуют превентивные меры, а также действия после стихийного бедствия для спасения поврежденных файлов. Если вы регулярно выполняете резервное копирование своих файлов, вернуть исходный файл будет проще простого. Правда в том, что немногие люди могут придерживаться своего плана резервного копирования, что увеличивает риск потери ценных данных. В таких обстоятельствах пришло время прибегнуть к расширенному инструменту исправления повреждений документов Word.

          VBAX Regular Присоединился к апр. 2020 г. Сообщений 8 Местоположение

          Сохранить файл как PDF по имени файла, используя содержимое текущего документа с помощью Word VBA


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

          Еще вопрос: пытаюсь обрезать абзац. пример: у меня есть второй абзац «Уважаемый мистер Джон Адам». Я хочу, чтобы мое имя файла было «John Adam.pdf», однако в моем коде вместо этого было указано «Уважаемый мистер Джон Адам.pdf». Я пытался использовать Right(FirstPara, Len(FirstPara) - 1), но получил команду ошибки.

          Утвердитель базы знаний VBAX Guru Зарегистрирован в июле 2008 г. Сообщений 4 323 Местоположение

          FWIW, ваш собственный код, скорее всего, будет работать так:

          VBAX Guru Присоединился к нам в августе 2014 г. Сообщений: 3056 Местоположение

          Вам нужно обработать 'firstname', чтобы получить нужную строку, например,

          Затем используйте sName в коде именования.

          Я не видел ваш исходный документ, но разве код не должен извлекать второй абзац из каждого раздела? например

          Утвердитель базы знаний VBAX Guru Зарегистрирован в июле 2008 г. Сообщений 4 323 Местоположение

          VBAX Regular Присоединился к апр. 2020 г. Сообщений 8 Местоположение

          gmayor
          Спасибо, брат. Я пробовал, как вы говорите.
          Я получил сообщение об ошибке "Член запроса коллекции не существует".

          macropod
          я вставляю код и получаю ту же ошибку "Член запроса коллекции не существует".
          На самом деле я пытался использовать трюк слияния почты. Я получил PDF-сохранение отдельно, но не могу понять имя. я не могу понять, как получить (скажем, "Имя" для использования в качестве имени файла при сохранении.

          Для перекрестной публикации. Я удалил сообщение на форуме, но оно все еще там. позвольте мне удалить снова.

          Утвердитель базы знаний VBAX Guru Зарегистрирован в июле 2008 г. Сообщений 4 323 Местоположение

          Первоначальное сообщение от тендосай

          macropod
          я вставляю код и получаю ту же ошибку "Член запроса коллекции не существует."


          Это говорит о том, что исходный документ не соответствует описанию; мы можем работать только с тем, что нам дано.

          Без фактического просмотра документа о проблеме с некоторыми репрезентативными образцами данных кому-либо может быть трудно диагностировать проблему. Можете ли вы прикрепить документ к сообщению с некоторыми репрезентативными данными (удалить все конфиденциальное)? Вы делаете это с помощью символа скрепки на вкладке «Перейти к дополнительным» в нижней части этого экрана.

          Первоначальное сообщение от тендосай

          На самом деле я пытался использовать трюк слияния почты. Я получил PDF-сохранение отдельно, но не могу понять имя. я не могу понять, как получить (скажем, "Имя" для использования в качестве имени файла при сохранении.

          Высказывание идей о языке, ярких сенсорных словах и знаковости

          Одной из наиболее распространенных задач, связанных с обработкой текста, для ученых является создание PDF-версий документов — для обмена с коллегами, отправки в журнал, загрузки на страницу публикации и т. д. В LaTex создание PDF-файлов — это вопрос одной простой команды (плюс немного возни с настройками). В последних версиях Word это также довольно просто: достаточно Сохранить как… и выбрать PDF.Но эта опция скрыта в ленточном интерфейсе и требует большого количества кликов. Я создаю PDF-файлы практически каждый день, поэтому мне хотелось чего-то попроще. Введите макросы Word.

          Приведенные ниже макросы делают только одно: они сохраняют открытый файл в формате PDF по умолчанию в той же папке с тем же именем файла. Первый предоставит вам возможность изменить имя и местоположение файла, второй — прямой экспорт, без вопросов. Выберите любой, который вам нравится, и добавьте его в Word. Ниже приведены некоторые шаги по добавлению его в качестве кнопки на панель инструментов.

          Подождите, куда мне вставить этот код?, спросите вы. Вы можете узнать, как добавить макрос в Word здесь. По сути, вы создаете новый макрос и вставляете в него приведенный ниже код, а затем сохраняете. Я мог бы предоставить вам загружаемый файл .dot(x), но это только навлекло бы на вас проблемы со всевозможными ограничениями безопасности в вашем браузере или в Word, поэтому сделать это проще.

          Макрос 1: использование окна «Сохранить как…»

          По сути, этот макрос просто вызывает окно «Сохранить как…» и предварительно выбирает формат PDF. Он предложит имя файла, которое вы можете изменить; и он предупредит вас, когда вы собираетесь перезаписать существующий файл.

          Макрос 2: вопросов нет

          Этот макрос (отсюда, с полезными поправками читателей) идет прямо на экспорт. Он вас ни о чем не спросит и не предупредит, если файл будет перезаписан (что для меня и важно — я хочу, чтобы PDF всегда соответствовал самой последней версии документа).

          Опытные пользователи заметят, что они могут немного настроить вывод, изменив настройки экспорта. Например, если вы используете его в основном для отправки журналов, вы можете установить для IncludeDocProps значение False .

          Добавление макроса на панель быстрого доступа

          Теперь мы хотим выбрать один из макросов и добавить его в меню для доступа в один клик. Для этой цели мне больше всего нравится «панель быстрого доступа» — здесь же находятся мои кнопки Zotero. Вот как:

          Читайте также: