Имя пользователя:
Пароль:
 

Показать сообщение отдельно

Новый участник


Сообщения: 30
Благодарности: 1

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
Sub AddButtonToPage(Anchor As Range, Name As String, Top As Single, Left As Single, Caption As String, MacroName As String)
  Dim btn As CommandButton
  
  'Добавление кнопки на страницу
  With Anchor.Document.Shapes.AddOLEControl("Forms.CommandButton.1", , , , , Anchor)
    Set btn = .OLEFormat.Object
    With btn
      .Name = Name
      .Caption = Caption
      .AutoSize = True
    End With
    .RelativeHorizontalPosition = wdRelativeHorizontalPositionPage
    .Left = Left
    .RelativeVerticalPosition = wdRelativeVerticalPositionPage
    .Top = Top - btn.Height
  End With
  
  'Добавление кода для кнопки в модуль ThisDocument
  Dim CodeModule As VBComponent
  Set CodeModule = Anchor.Document.VBProject.VBComponents(1)
  With CodeModule.CodeModule
    .InsertLines .CountOfDeclarationLines + .CountOfLines, String(2, vbCr)
    .InsertLines .CountOfDeclarationLines + .CountOfLines, "Private Sub " & Name & "_Click()" & vbCr & "Application.Run ""WebGoBack""" & vbCr & "End Sub"
  End With
End Sub

Sub Main()
  Dim oRng As Range
  Dim i As Long
  Set oRng = ActiveDocument.Range
  
  'Переход последовательно по страницам и вставка кнопок
  For i = 1 To ActiveDocument.Range.ComputeStatistics(wdStatisticPages)
    Set oRng = oRng.GoTo(wdGoToPage, wdGoToAbsolute, i)
    AddButtonToPage oRng, "Button" & i, oRng.Sections.First.PageSetup.TopMargin, oRng.Sections.First.PageSetup.LeftMargin, "К оглавлению", "Run" & i
    DoEvents
  Next
End Sub
Такой вот код помогли мне сделать на http://www.programmersforum.ru/showthread.php?p=620182

Но есть проблема с его исполнением — проставляет кнопки не на каждой странице, и где ставит берет форматирование текста на кнопке из окружающего текста и все кнопки получаются разные.
Это сообщение посчитали полезным следующие участники:

Отправлено: 12:28, 24-09-2010 | #10