У Кристиана есть папка, полная файлов DOC, которые ему нужно преобразовать в файлы DOCX. Он задается вопросом, есть ли быстрый способ конвертировать их, не открывая и не сохраняя каждую по отдельности.

Microsoft не предоставляет эту функцию в Word и не предоставляет надстройку для преобразования. Однако вы можете создать свой собственный макрос для преобразования. Здесь показан довольно простой подход:

Sub ConvertBatchToDOCX()

Dim sSourcePath As String     Dim sTargetPath As String     Dim sDocName As String     Dim docCurDoc As Document     Dim sNewDocName As String

' Looking in this path     sSourcePath = "c:\Users\Administrator\Desktop\Testing\"

sTargetPath = "c:\Users\Administrator\Desktop\Converted\"



' Look for first DOC file     sDocName = Dir(sSourcePath & "*.doc")

Do While sDocName <> ""

' Repeat as long as there are source files                  'Only work on files where right-most characters are ".doc"

If Right(sDocName, 4) = ".doc" Then             ' Open file             Set docCurDoc = Documents.Open(FileName:=sSourcePath & sDocName)



sNewDocName = Replace(sDocName, ".doc", ".docx")



With docCurDoc                 .SaveAs FileName:=sTargetPath & sNewDocName, _                   FileFormat:=wdFormatDocumentDefault                 .Close SaveChanges:=wdDoNotSaveChanges             End With         End If         ' Get next source file name         sDocName = Dir     Loop     MsgBox "Finished"

End Sub

Чтобы использовать макрос, вам нужно внести два изменения. Сначала укажите в переменной sSourcePath полный путь (с обратной косой чертой) к каталогу, содержащему файлы, которые вы хотите преобразовать.

Затем в переменной sTargetPath укажите полный путь (с обратной косой чертой в конце) к каталогу, в котором должны храниться преобразованные документы.

Затем макрос просматривает все файлы DOC, которые он находит в исходном каталоге, открывает их и сохраняет в виде файлов DOCX в целевом каталоге.

Обратите внимание, что я упомянул, что это простой подход. Причина в том, что он не выполняет проверку ошибок в своей работе. Например, если вы запускаете этот макрос дважды подряд, вы получите ошибки, потому что файлы, сохраняемые в целевом каталоге, уже существуют. Кроме того, вы должны понимать, что при этом все файлы DOC преобразуются в файлы DOCX. Другими словами, если в исходном файле есть макросы, эти макросы будут удалены в процессе преобразования.

Наконец, обратите внимание, что ядро ​​макроса содержится в структуре If / Then, которая проверяет, действительно ли крайние правые 4 символа имени файла являются «.doc». Это сделано из-за довольно неприятного поведения функции Dir в некоторых системах, где поиск по шаблону «* .doc» будет возвращать как совпадение любое имя файла, содержащее_ .doc. Это означает, что он также возвращает файлы с расширениями .docx и .docm. Очевидно, их не следует преобразовывать, поэтому включена структура If / Then, чтобы отсеять их.

Если вы предпочитаете не использовать свой собственный макрос, вы можете использовать сторонние решения. На следующей странице сайта Грэма Мэра есть бесплатная надстройка, которая, помимо прочего, выполняет преобразование документа:

http://www.gmayor.com/document_batch_processes.htm

Вы можете найти другие похожие конвертеры, выполнив поиск в Интернете по запросу «doc docx converter» (без кавычек).

_Примечание: _

Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

WordTips — ваш источник экономичного обучения работе с Microsoft Word.

(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (643) относится к Microsoft Word 2007, 2010, 2013 и 2016.