Eu não sei como fazer isso em VBA (no próprio Word), mas você pode criar um pequeno arquivo VBS e soltá-lo no diretório e clicar duas vezes nele:
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
Supondo que os arquivos sejam todos .docx
extension.
Inspiração (e explicação) veio de aqui . Para simplificar, não usei objWMIService
, mas apenas fui com Scripting.FileSystemObject
. Você também pode definir objWord.Visible = False
para True
. Você verá o aplicativo do Word piscando.
Você também pode mostrar as páginas no "Windows Explorer". Basta clicar com o botão direito do mouse nas colunas acima dos arquivos e escolher mais, você pode selecionar pages
para mostrar uma coluna com as páginas por documento do Word. Assim, você pode ver a contagem de páginas antes de abrir o documento. (Você precisará estar no Details
-view para ver as colunas)
Se você realmente quiser, também poderá traduzi-lo para o VBA (Word-macro).