Макрос вставки оглавления

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

darklumen
Сообщения: 23
Зарегистрирован: 24 сен 2009, 22:13

Busine2009 писал(а):darklumen,
а курсор можно вставить после слова Содержание или надо чтобы вообще было всё автоматически? Если полностью всё автоматически, то на данной странице идёт что: слово "Содержание", затем пустой абзац, а затем Содержание?
второй вариант! =)
--------------------------------------------------------------------------------
Добавлено сообщение
--------------------------------------------------------------------------------
Busine2009 писал(а):darklumen,
я тебя вообще-то о другом спрашивал.
2 вариант+)
Аватара пользователя
Busine2009
Сообщения: 322
Зарегистрирован: 18 июл 2009, 15:34
Контактная информация:

darklumen,
вот смотри, что я на пьяную голову насочинял:

Код: Выделить всё

Sub DoContents()
If ActiveDocument.TablesOfContents.Count = 1 Then
    ActiveDocument.TablesOfContents(1).Update
    Exit Sub
ElseIf ActiveDocument.TablesOfContents.Count = 0 Then
Selection.HomeKey Unit:=wdStory
Selection.TypeText "Содержание"
Selection.TypeParagraph
Selection.TypeParagraph
With ActiveDocument
    .TablesOfContents.Add Range:=Selection.Range, RightAlignPageNumbers:= _
        True, UseHeadingStyles:=True, UpperHeadingLevel:=1, _
        LowerHeadingLevel:=3, IncludePageNumbers:=True, AddedStyles:="", _
        UseHyperlinks:=True, HidePageNumbersInWeb:=True, UseOutlineLevels:= _
        True
    .TablesOfContents(1).TabLeader = wdTabLeaderDots
    .TablesOfContents.Format = wdIndexIndent
End With
ElseIf ActiveDocument.TablesOfContents.Count > 1 Then
    MsgBox "Больше двух Оглавлений у тебя, мил человек!"
End If
End Sub
darklumen
Сообщения: 23
Зарегистрирован: 24 сен 2009, 22:13

Busine2009 писал(а):darklumen,
вот смотри, что я на пьяную голову насочинял:

Код: Выделить всё

Sub DoContents()
If ActiveDocument.TablesOfContents.Count = 1 Then
    ActiveDocument.TablesOfContents(1).Update
    Exit Sub
ElseIf ActiveDocument.TablesOfContents.Count = 0 Then
Selection.HomeKey Unit:=wdStory
Selection.TypeText "Содержание"
Selection.TypeParagraph
Selection.TypeParagraph
With ActiveDocument
    .TablesOfContents.Add Range:=Selection.Range, RightAlignPageNumbers:= _
        True, UseHeadingStyles:=True, UpperHeadingLevel:=1, _
        LowerHeadingLevel:=3, IncludePageNumbers:=True, AddedStyles:="", _
        UseHyperlinks:=True, HidePageNumbersInWeb:=True, UseOutlineLevels:= _
        True
    .TablesOfContents(1).TabLeader = wdTabLeaderDots
    .TablesOfContents.Format = wdIndexIndent
End With
ElseIf ActiveDocument.TablesOfContents.Count > 1 Then
    MsgBox "Больше двух Оглавлений у тебя, мил человек!"
End If
End Sub
твоя пьяная голова золотая! спасибоооо вооот такое!=)))))))
Ответить