Я пытаюсь найти способ перечисления количества страниц в документах с несколькими словами, все они сохранены в одной папке. Возможно ли это с помощью VBA?
Я использую:
- Windows 7 и
- Microsoft Office 2007
Я пытаюсь найти способ перечисления количества страниц в документах с несколькими словами, все они сохранены в одной папке. Возможно ли это с помощью VBA?
Я использую:
Я не знаю, как это сделать в 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).
Смотрите мой предыдущий ответ на аналогичный вопрос - это может помочь.
Это возможно, технически, но не всегда надежно, особенно без (в вычислительном отношении) затрат, чего никто никогда не хочет, и мой ответ объясняет почему.