Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.05.2015, 02:26   #1
Karyuudo
Пользователь
 
Регистрация: 17.02.2008
Сообщений: 53
По умолчанию Скрестить 2 скрипта vbs+удалить файл

Здравствуйте. Просьба помочь сделать следующее:

Дано: много файлов в ворде, большие и маленькие.
Задача: отделить большие (по количеству страниц, допустим больше 1 для примера)
Что есть:
Путем помощи на форумах и гугла удалось вот что найти:

скрипт который обрабатывает пачку файлов docx на удаление ссылок, только сюда вместо удаления ссылок надо проверку и удаление файла.

Код:
With CreateObject("word.application")
  For Each x In CreateObject("scripting.filesystemobject").getfile(wscript.scriptfullname).parentfolder.Files
    If LCase(Mid(x.Name, InStrRev(x.Name, ".") + 1, 4)) = "docx" Then
      With .documents.open(x.Path)
        numDocs = numDocs + 1
 
 //сюда что-то надо вставить для счета страниц и удаления если счет больше указанного числа страниц
        .Range.Fields.Unlink 'Ctrl+A, Ctrl+Shift+F9  
        .Close True 'save changes 
 
      End With
    End If
  Next
  .Quit
End With
wscript.echo "Обработано документов " & numDocs
а вот скрипт,который для конкретного файла считает страницы и если >1 то.... надо как-то удалить
Код:
Set objWord = CreateObject("Word.Application")
Const wdStatisticPages = 2
Set objDoc = objWord.Documents.Open("C:\Новая папка\имя файла.docx")
 
   if objDoc.ComputeStatistics(wdStatisticPages)>1 then удалить и продолжить проверять следующий файл
   objDoc.Close
   objWord.Quit
Как теперь это соединить?
нашел функцию удаления, но она чего-то не работает. к тому же после open и delete надо указать путь. а тут нет конкретного пути.. пытался как-то сделать, но не работает...

Последний раз редактировалось Karyuudo; 30.05.2015 в 02:28.
Karyuudo вне форума Ответить с цитированием
Старый 30.05.2015, 14:44   #2
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Код:
With CreateObject("word.application")
  For Each x In CreateObject("scripting.filesystemobject").getfile(wscript.scriptfullname).parentfolder.Files
    If LCase(Mid(x.Name, InStrRev(x.Name, ".") + 1, 4)) = "docx" Then
      With .documents.open(x.Path)
        np = .ComputeStatistics(2)  '2=wdStatisticPages
        .Close False                'don't save changes         
      End With
      if np < 2 then x.delete: numDel = numDel + 1
    End If
  Next
  .Quit
End With
wscript.echo "Удалено документов " & numDel
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
WinInet загрузить файл во временной файл , использовать, потом удалить Человек_Борща Работа с сетью в Delphi 5 03.08.2010 13:46
открыть файл *.xls из скрипта alvazor Microsoft Office Excel 5 15.06.2010 12:00
Помогите с настройкай скрипта mlm (буквально один файл) YurecLB Помощь студентам 3 02.02.2009 20:09
Активация VBS Скрипта Titan123 JavaScript, Ajax 1 22.10.2008 12:27