0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 24

Как переделать макрос так, что бы после слияния Word создавал PDF и сохранял в PDF каждый раздел отдельно?

27.10.2014, 21:12. Показов 11322. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Добрый вечер всем!
Помогите переделать макрос что бы после слияние, word создавал PDF и сохранял в PDF по отдельности.
Данный макрос создает в word и сохраняет по отдельности в word
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Sub Split_document()
    Dim srcdoc As Document, newdoc As Document
    Dim i As Integer
    
    Set srcdoc = ActiveDocument
    For i = 1 To srcdoc.Sections.Count - 1
        srcdoc.Sections(i).Range.Copy
        Set newdoc = Document.Add
        newdoc.Range.Paste
        newdoc.Sections(2).PageSetup.SectionStart = wdSectionContinuous
        newdoc.SaveAs srcdoc.Path & "\" & Left(srcdoc.Name, Len(srcdoc.Name) - 4) & _
            "_" & Format(i, "000") & ".docx"
        newdoc.Close
    Next
End Sub

Всем спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
27.10.2014, 21:12
Ответы с готовыми решениями:

Нужна java-программа для чтения электронных книг в формате PDF. Или как можно переделать PDF книгу в вордовский файл?
Нужна java- программа для чтения электронных книг в формате PDF. Нужна очень срочно прошу помощи завтра экзамен просто нада успеть. Или...

Не открываются файлы Word, Excel & pdf после вируса
Всем, привет! Помогите, пожалуйста!!!!! Ситуация такая: на рабочую почту пришло письмо с какой-то картинкой, сама я его не видела (не для...

Как создать PDF файл с именем ZAKAZ_(дата сегодня).pdf
Как создать из "Excel таблицы" - PDF файл с именем ZAKAZ_(дата сегодня).pdf при помощи макроса? Есть такой макрос: Sub...

21
Наблюдатель
 Аватар для Alex Dark
457 / 192 / 33
Регистрация: 01.05.2012
Сообщений: 1,028
27.10.2014, 21:56
Если хотите сами разобраться - Запустите запись макроса и сохраните документ в PDF
Остановите макрос.
Получите нужную команду.

Если вы хотите что бы это сделал за вас я - то мне так же ломово это делать как и вам разбираться
1
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 24
27.10.2014, 22:05  [ТС]
Я пробовал редактором записать, но он не сохраняет по отдельности к сожалению.
0
Наблюдатель
 Аватар для Alex Dark
457 / 192 / 33
Регистрация: 01.05.2012
Сообщений: 1,028
28.10.2014, 04:49
Ну так, а руки и голова вам на что?
"Запись макроса" тупо пишет последовательность выполненных действий, при чём не всегда правильно.
Ваша задача всего лишь правильно подправить параметры полученных команд и на VB реализовать алгоритм действий которые вы выполняете при помощи мыши и клавиатуры.
0
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 24
28.10.2014, 07:03  [ТС]
Если бы я знал что и куда добавить или подредактировать то не спрашивал бы на форуме....
Думаю форум для этого и создан был.
0
Ушел с CyberForum совсем!
874 / 183 / 25
Регистрация: 04.05.2011
Сообщений: 1,020
Записей в блоге: 110
28.10.2014, 11:43
как вам и советовали посмотрите код на выходе макрорекордера и в дополнении почитайте про метод ExportAsFixedFormat
Цитата Сообщение от Baaur Посмотреть сообщение
Думаю форум для этого и создан был.
IMHO а форум создан для конкретных вопросов! от вас же ни строчки кода
0
Ушел с CyberForum совсем!
874 / 183 / 25
Регистрация: 04.05.2011
Сообщений: 1,020
Записей в блоге: 110
28.10.2014, 11:51
вам даже влом "покурить" похожие темы которые можно увидеть внизу данной темы
Миниатюры
Как переделать макрос так, что бы после слияния Word создавал PDF и сохранял в PDF каждый раздел отдельно?  
0
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 24
28.10.2014, 12:05  [ТС]
Я их смотрел, ни одна из тем не подходит. Но все же спасибо.
0
Ушел с CyberForum совсем!
874 / 183 / 25
Регистрация: 04.05.2011
Сообщений: 1,020
Записей в блоге: 110
28.10.2014, 12:22
ну а что вам макрорекордер то хоть выдает пытались анализировать ?
0
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 24
28.10.2014, 12:33  [ТС]
Да он мне выдал
Visual Basic
1
2
3
4
5
6
7
ActiveDocument.ExportAsFixedFormat OutputFileName:= _
        "C:\Users\*******\Desktop\1.pdf", ExportFormat:=wdExportFormatPDF, _
        OpenAfterExport:=True, OptimizeFor:=wdExportOptimizeForPrint, Range:= _
        wdExportAllDocument, From:=1, To:=1, Item:=wdExportDocumentContent, _
        IncludeDocProps:=True, KeepIRM:=True, CreateBookmarks:= _
        wdExportCreateNoBookmarks, DocStructureTags:=True, BitmapMissingFonts:= _
        True, UseISO19005_1:=False
Я думал что маркос должен добавлять PDF и сохранять его отдельно, тоесть как
Visual Basic
1
= CreateObject("AcroExch.PDDoc")
вместо
Visual Basic
1
Set newdoc = Document.Add
но все равно не работает
0
Ушел с CyberForum совсем!
874 / 183 / 25
Регистрация: 04.05.2011
Сообщений: 1,020
Записей в блоге: 110
28.10.2014, 12:46
Цитата Сообщение от Baaur Посмотреть сообщение
Я думал что маркос должен добавлять PDF и сохранять его отдельно, тоесть как Код Visual Basic1
= CreateObject("AcroExch.PDDoc")
это если будете работать непосредственно с Adobe Acrobat Pro.
чем принципиально отличается метод SaveAs от ExportAsFixedFormat объекта newdoc?
0
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 24
28.10.2014, 13:02  [ТС]
Честно признаюсь не знаю
Но предполагаю то что ExportAsFixedFormat - сохраняет док в заданном формате,
0
Ушел с CyberForum совсем!
874 / 183 / 25
Регистрация: 04.05.2011
Сообщений: 1,020
Записей в блоге: 110
28.10.2014, 13:25
правильно мыслишь
заданных форматов у метода два: PDF и XPS
в нашем случае это фиксированный формат PDF, что нам мешает экспортировать объект newdoc в PDF ?
0
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 24
28.10.2014, 14:56  [ТС]
Пока не дошло что мешает....

Добавлено через 12 минут
Можно еще подсказку...
0
Ушел с CyberForum совсем!
874 / 183 / 25
Регистрация: 04.05.2011
Сообщений: 1,020
Записей в блоге: 110
28.10.2014, 15:13
у метода 2 основных параметра.
путь куда сохранять выходной файл OutputFileName и его формат выходного файла. Остальные можно игнорировать.
В нашем случае ExportFormat:=wdExportFormatPDF
в итоге надо только подсунуть в параметр OutputFileName.

Добавлено через 1 минуту
код в стартовом сообщении ты как-то написал же !

Добавлено через 13 минут

Не по теме:

можно даже звонок другу и помощь зала

0
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 24
28.10.2014, 15:46  [ТС]
Visual Basic
1
2
3
4
5
6
Dim srcdoc As Document
Set srcdoc = ActiveDocument
 
    srcdoc.ExportAsFixedFormat OutputFileName:= _
        srcdoc.Path & "\" & Left(srcdoc.Name, Len(srcdoc.Name) - 4) & _
            "_" & Format(i, "000") & ".pdf", ExportFormat:=wdExportFormatPDF
данный макрос сохраняет, но не получится сохранить по отдельности, если вставляю сстроку
Visual Basic
1
For i = 1 To srcdoc.Sections.Count - 1
то он перестает работать

Добавлено через 43 секунды
в 3-ю строку
0
Ушел с CyberForum совсем!
874 / 183 / 25
Регистрация: 04.05.2011
Сообщений: 1,020
Записей в блоге: 110
28.10.2014, 16:13
Лучший ответ Сообщение было отмечено Baaur как решение

Решение

Цитата Сообщение от Surrogate Посмотреть сообщение
чем принципиально отличается метод SaveAs от ExportAsFixedFormat объекта newdoc?
я именно этот объект имел в виду, а не srcdoc

Добавлено через 4 минуты
проглядел еще ошибку Set newdoc = Documents.Add
0
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 24
28.10.2014, 18:33  [ТС]
Цитата Сообщение от Surrogate Посмотреть сообщение
Set newdoc = Documents.Add
вот вместо пытался написать
Set newdoc.ExportAsFixedFormat OutputFileName:="C:\Users\*******\Deskto p\1.pdf", ExportFormat:=wdExportFormatPDF
тоже не получилось

Добавлено через 8 минут
Цитата Сообщение от Surrogate Посмотреть сообщение
чем принципиально отличается метод SaveAs от ExportAsFixedFormat объекта newdoc?
Нашел
SaveAs - Сохраняет указанный документ с новым именем или форматом
ExportAsFixedFormat - сохраняет документ в формате PDF или XPS
0
Ушел с CyberForum совсем!
874 / 183 / 25
Регистрация: 04.05.2011
Сообщений: 1,020
Записей в блоге: 110
28.10.2014, 18:36
Цитата Сообщение от Baaur Посмотреть сообщение
Set newdoc.ExportAsFixedFormat OutputFileName:="C:\Users\*******\Deskto p\1.pdf", ExportFormat:=wdExportFormatPDF
если убрать Set то все получится

Добавлено через 1 минуту
только наверно имена документов в pdf надо будет по аналогии с тем как ты в SaveAs делал. чтоб каждому разделу свое присваивать свое имя
0
0 / 0 / 0
Регистрация: 23.08.2013
Сообщений: 24
28.10.2014, 18:51  [ТС]
Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
Sub Split_document1()
    Dim srcdoc As Document, newdoc As Document
    Dim i As Integer
    
    Set srcdoc = ActiveDocument
    For i = 1 To srcdoc.Sections.Count - 1
        srcdoc.Sections(i).Range.Copy
        newdoc.ExportAsFixedFormat OutputFileName:=srcdoc.Path & "\" & Left(srcdoc.Name, Len(srcdoc.Name) - 4) & "_" & Format(i, "000") & ".pdf", ExportFormat:=wdExportFormatPDF
        newdoc.Range.Paste
        newdoc.Sections(2).PageSetup.SectionStart = wdSectionContinuous
        
        newdoc.Close
    Next
End Sub
все равно выдает ошибку и просит Set поставить

Добавлено через 2 минуты
а после проставление Set ошибок еще больше появляются
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
28.10.2014, 18:51
Помогаю со студенческими работами здесь

Как соединить несколько PDF файлов в один документ PDF?
имею распечатку книжки в 45 pdf файлах. как-то неудобно просматривать её. как их все объединить в один pdf файл? Может спец софт необходим?

Как организовать работу PDF, чтоб он искал в PDF файле определенную строку
Имеется код (Он всего лишь создает файл и текст, который указывается в форме) using System; using System.IO; using...

Как разбить 1-ин pdf документ на множество pdf файлов в соответствии с регулярным выражением ?
Есть документ представляющий собой сборник статей тезисов (c рисунками) в двух формате pdf, задача получить из многостраничного документа...

Как разместить PDF файлы в PDF файле
Есть PDF документ с одной страницей размера 700х500мм, и несколько PDF файлов. Нужно разместить PDF файлы на странице первого PDF файла с...

Как преобразовать pdf в word?
Народ срочно помогите как можно преобразовать pdf в word


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

Новые блоги и статьи
И решил я переделать этот ноут в машину для распределенных вычислений
Programma_Boinc 09.11.2025
И решил я переделать этот ноут в машину для распределенных вычислений Всем привет. А вот мой компьютер, переделанный из ноутбука. Был у меня ноут асус 2011 года. Со временем корпус превратился. . .
Мысли в слух
kumehtar 07.11.2025
Заметил среди людей, что по-настоящему верная дружба бывает между теми, с кем нечего делить.
Новая зверюга
volvo 07.11.2025
Подарок на Хеллоуин, и теперь у нас кроме Tuxedo Cat есть еще и щенок далматинца: Хочу еще Симбу взять, очень нравится. . .
Инференс ML моделей в Java: TensorFlow, DL4J и DJL
Javaican 05.11.2025
Python захватил мир машинного обучения - это факт. Но когда дело доходит до продакшена, ситуация не так однозначна. Помню проект в крупном банке три года назад: команда data science натренировала. . .
Mapped types (отображённые типы) в TypeScript
Reangularity 03.11.2025
Mapped types работают как конвейер - берут существующую структуру и производят новую по заданным правилам. Меняют модификаторы свойств, трансформируют значения, фильтруют ключи. Один раз описал. . .
Адаптивная случайность в Unity: динамические вероятности для улучшения игрового дизайна
GameUnited 02.11.2025
Мой знакомый геймдизайнер потерял двадцать процентов активной аудитории за неделю. А виновником оказался обычный генератор псевдослучайных чисел. Казалось бы - добавил в карточную игру случайное. . .
Протоколы в Python
py-thonny 31.10.2025
Традиционная утиная типизация работает просто: попробовал вызвать метод, получилось - отлично, не получилось - упал с ошибкой в рантайме. Протоколы добавляют сюда проверку на этапе статического. . .
C++26: Read-copy-update (RCU)
bytestream 30.10.2025
Прошло почти двадцать лет с тех пор, как производители процессоров отказались от гонки мегагерц и перешли на многоядерность. И знаете что? Мы до сих пор спотыкаемся о те же грабли. Каждый раз, когда. . .
Изображения webp на старых x32 ОС Windows XP и Windows 7
Argus19 30.10.2025
Изображения webp на старых x32 ОС Windows XP и Windows 7 Чтобы решить задачу, использовал интернет: поисковики Google и Yandex, а также подсказки Deep Seek. Как оказалось, чтобы создать. . .
Passkey в ASP.NET Core identity
stackOverflow 29.10.2025
Пароли мертвы. Нет, серьезно - я повторяю это уже лет пять, но теперь впервые за это время чувствую, что это не просто красивые слова. В . NET 10 команда Microsoft внедрила поддержку Passkey прямо в. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru