Добрый день.
ALS>> Есть ли здесь специалисты по VBA (интересует прежде всего
ALS>> применительно к Word'у). Есть несколько вопросов...
S> Смелее ;)
Ну, например, такой вопрос:
Есть в Worde (в параметрах страницы) такая опция, которая называется
"Различать колонтитулы первой страницы". Ну, понятно, что через VBA
поставить эту галочку тоже не проблема:
ActiveDocument.PageSetup.DifferentFirstPageHeaderFooter = True
Проблема же в другом. Есть, допустим, в коде два таких куска:
1.
CSect = Selection.Information(wdActiveEndSectionNumber)
With ActiveDocument.Sections(CSect).Headers(wdHeaderFooterFirstPage).Shapes.AddShape(msoShapeRectangle,
CentimetersToPoints(2), CentimetersToPoints(0.5), CentimetersToPoints(18.5),
CentimetersToPoints(28.7))
.Fill.Visible = msoFalse
.Line.Weight = CentimetersToPoints(0.05)
.Name = "shp1"
End With
2.
CSect = Selection.Information(wdActiveEndSectionNumber)
With ActiveDocument.Sections(CSect).Headers(wdHeaderFooterPrimary).Shapes.AddShape(msoShapeRectangle,
CentimetersToPoints(2), CentimetersToPoints(0.5), CentimetersToPoints(18.5),
CentimetersToPoints(28.7))
.Fill.Visible = msoFalse
.Line.Weight = CentimetersToPoints(0.05)
.Name = "shp301"
End With
Как я понимаю, первый кусок должен вставлять рамочку в колонтитул
первой страницы, а второй - в колонтитул остальных страниц. На
практике же оба кода рисуют рамочку в основном колонтитуле, игнорируя
первую страницу. Как победить?
Это вопрос номер раз. Вопрос номер два такой: как обратиться из VBA к
пользовательским свойствам документа (CustomPropertis) - в справке об
этом как-то весьма туманно написано.
И до кучи - третий вопрос. Как обновить поля в колонтитулах страниц?
ActiveDocument.Fields.Update обновляет только поля в тексте.