Destio небольшой блог

Массовая конвертация файлов в Microsoft Office Word

Описанный способ точно работает в 2007 Офисе, так-то ничего не должно мешать работать и в других версиях, может с небольшими изменениями.

В чем MSO Word сильно уступает LO Writer, так это в многообразии параметров запуска и оттого проигрывает в гибкости и функциональности, когда нужно обрабатывать много файлов сразу.

Нет, это возможно, но придется лезть в дебри макросов, только для того чтобы автоматически сохранять открытый файл в нужном формате. И еще batник, чтобы скормить кучу файлов Wordу. Так-то можно обработать все файлы и через макрос, но батники как-то милее.

Напишу на примере конвертации .doc и .docx в HTML. Итак, у нас есть кучка (70 штук) файлов, и нам нужно немного магии чтобы все они одним кликом превратились в .htm

Сначала макрос, он называется saveashtml (что и объявляется в первой строке):

Sub saveashtml()
NewFilename = (Replace(ActiveDocument.FullName, ".docx", ".htm")) 
NewFilename = (Replace(NewFilename, ".doc", ".htm"))
ActiveDocument.SaveAs fileName:=NewFilename, FileFormat:=wdFormatHTML, AddToRecentFiles:=True
Application.Quit 
End Sub

А вот это тот самый, работяга-батник, он берет все файлы (и .doc и .docx), и по порядку открывает их в Word. После этого Word выполняет над открытым файлом свой макрос saveashtml и закрывается. Следующий!

for %%f in (*.doc) do (
start WINWORD.EXE /msaveashtml %%f
timeout 5
)

timeout 5 — а вот это важный параметр, показывает время (в секундах) перед запуском следующей копии Word. Иначе они откроются все сразу (все 70, вот беда), что будет несколько неудобно и мало ли что: подвиснет или выпадет. А 5 секунд гарантированно (на моем компьютере) хватает для сохранения и завершения очередной копии Word.

К сожалению, возможности скрытого запуска Word нет, поэтому пользоваться компом во время конвертации не выйдет. Но это быстро.

В LibreOffice конвертация куда проще.

Ярлыки: , , , , , ,


Ближайшие сообщения:

Похожие сообщения:

Комментарии к этой записи отключены.

Всего один комментарий

  • Спасибо! По-моему самый удачный макрос для массовой конвертации. Коротко и просто.

Ээг головного мозга в краснодаре ребенку - мрт головного мозга www.clinicist.ru.