Destio

Автоматическая нумерация страниц в Microsoft Word

Раньше я пользовался более окольным методом автоматической нумерации страниц, но вот дошли руки состряпать решение поаккуратнее.

Нижеприведенный макрос сам сосчитает и вставит номера страниц сразу во все DOC и DOCX файлы (в алфавитном порядке), найденные в рабочей папке (например c:\test\ ). Конечно, для этого в колонтитуле уже должны быть указаны номера, а макрос просто установит параметр “Нумерация страниц/начать с”

Также первая и последняя страницы файла будут записаны в конец названия файла в виде _54-76.docx.

Первая страница хранится в переменной firstpage.

Sub pagecount()
'
' pagecount Макрос
'
'

Dim art_page_count As Integer
Dim author As String
Dim firstpage As Integer
Dim file As Variant
Dim lastpage As Integer
Dim oDoc As Document
Dim path As String
Dim temp As Variant

firstpage = 5 'Первая страница номера

path = "c:\test\" 'Рабочая папка

file = Dir(path & "*.doc*")
  While (file <> "")
    Set oDoc = Documents.Open(FileName:=path & file)
    With oDoc
      oDoc.Repaginate
      art_page_count = oDoc.BuiltInDocumentProperties(wdPropertyPages)
      Set oRng = .Sections(1).Headers(wdHeaderFooterPrimary)
      With oRng.PageNumbers
        .RestartNumberingAtSection = True
        .StartingNumber = firstpage
      End With
      lastpage = firstpage + art_page_count - 1
      newname = (Replace(oDoc.FullName, ".doc", "_" & firstpage & "-" & lastpage & ".doc"))
      oDoc.SaveAs FileName:=newname
    End With
    oDoc.Close SaveChanges:=True
    firstpage = lastpage + 1
    file = Dir
  Wend
End Sub

Ярлыки: , , ,


Ближайшие сообщения:

Похожие сообщения:

Комментарии к этой записи отключены.