4

Я пытаюсь найти способ перечисления количества страниц в документах с несколькими словами, все они сохранены в одной папке. Возможно ли это с помощью VBA?

Я использую:

  • Windows 7 и
  • Microsoft Office 2007

2 ответа2

3

Я не знаю, как это сделать в VBA (в самом Word), но вы можете создать небольшой VBS-файл, поместить его в каталог и дважды щелкнуть по нему:

Const wdStatisticPages = 2
Set FSO = CreateObject("Scripting.FileSystemObject")
currentPath = fso.GetAbsolutePathName(".")
set FLD = FSO.GetFolder(currentPath)
Set objWord = CreateObject("Word.Application")
objWord.Visible = False
For Each Fil In FLD.Files
    If UCase(FSO.GetExtensionName(Fil.name)) = "DOCX" Then
        Set objDoc = objWord.Documents.Open(currentPath & "\" & Fil.Name)
        intPages = intPages + objDoc.ComputeStatistics(wdStatisticPages)
        objDoc.Saved = True
        objDoc.Close
    End If
Next
objWord.Quit
Wscript.Echo "Total pages: " & intPages
Set oShell = Nothing
Set FLD = Nothing
Set FSO = Nothing

Предполагая, что все файлы имеют расширение .docx .

Вдохновение (и объяснение) пришло отсюда. Для простоты я не использовал objWMIService а просто использовал Scripting.FileSystemObject . Вы также можете установить objWord.Visible = False к True . Вы увидите, что приложение Word мерцает и выключается.

Вы также можете показать страницы в "Проводнике Windows". Просто щелкните правой кнопкой мыши столбцы над файлами и выберите больше, вы можете выбрать pages чтобы показать столбец со страницами в Word-документе. Таким образом, вы можете увидеть количество страниц до открытия документа. (Вам нужно быть в окне « Details чтобы увидеть столбцы)

Если вы действительно хотите, вы можете также перевести это на VBA (Word-macro).

0

Смотрите мой предыдущий ответ на аналогичный вопрос - это может помочь.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .