Contando páginas dentro dos documentos do Word [.doc]

4

Estou tentando encontrar uma maneira de listar o número de páginas em vários documentos do Word, todos salvos na mesma pasta. Isso é possível usando o VBA?

Estou usando:

  • Windows 7 e
  • Microsoft Office 2007
por BobJim 17.10.2013 / 12:22

2 respostas

3

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).

    
por 17.10.2013 / 13:36
0

Veja meus resposta anterior a uma pergunta semelhante - isso pode ajudar.

É possível alcançar, tecnicamente, mas nem sempre confiável - especialmente sem ser (computacionalmente) caro, o que ninguém quer - e minha resposta explica por quê.

    
por 24.10.2013 / 09:58