Ветеран
Сообщения: 2710
Благодарности: 1686
|
Профиль
|
Отправить PM
| Цитировать
Sisin,
Тупо написал VBS-скрипт с макросом для Word. Особенно не "вылизывал", если среди Doc есть увечные файлы, возможны проблемы
Код:
BoxIn = "Z:\Box_In"
BoxOut = "Z:\Box_Out"
Set RegMaska = New RegExp
RegMaska.Pattern = "^.*\.doc$"
RegMaska.IgnoreCase = True
Set FSO = CreateObject("Scripting.FileSystemObject")
Set Folds = FSO.GetFolder(BoxIn)
Set Files = Folds.Files
Set WD = CreateObject("Word.Application")
With WD
.Visible = True
For Each jF In Files
If RegMaska.Test(jF) Then
FileIn = BoxIn + "\" + FSO.GetBaseName(jF) + ".doc"
FileOut = BoxOut + "\" + FSO.GetBaseName(jF) + ".docx"
If Not FSO.FileExists(FileOut) Then
Call .Documents.Open(FileIn, False, False, False, "", "", False, "", "", 0, "")
Call .ActiveDocument.SaveAs2(FileOut, 12, False, "", True, "", False, False, False, False, False, , , , , , 14)
.ActiveWindow.Close
If FSO.FileExists(FileOut) Then FSO.DeleteFile (FileIn)
Else
MsgBox "Файл" + vbCrLf + FileOut + vbCrLf + "Уже существует" + vbCrLf + vbCrLf + "поэтому файл" + vbCrLf + FileIn + vbCrLf + "Не преобразовываем"
End If
End If
Next
.Quit
End With
Пропишите свои пути для папок. Входная и выходная папки могут совпадать.
|
-------
Даже самая сложная проблема обязательно имеет простое, лёгкое для понимания, неправильное решение. Каждое решение плодит новые проблемы.
Последний раз редактировалось megaloman, 02-06-2017 в 16:16.
Отправлено: 22:10, 01-06-2017
| #6
|