Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2003/XP/2000 - Навигация в документе word2003

Ответить
Настройки темы
2003/XP/2000 - Навигация в документе word2003

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


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

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


Есть большие документы, в которых хотелось бы организовать удобную навигацию. Так, чтобы с оглавления можно было перемещаться к главам и после глав по нажатию кнопки перемещаться обратно к оглавлению. Как это реализовать если не гиперссылками? Хотелось бы также придумать какой-то макрос для расстановки таких кнопок по всему документу.

Отправлено: 18:23, 09-09-2010

 

Аватара для Morpheus

Ветеран


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

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


kanapfelka, на 2010 переходить не планируете? Там ничего изобретать на надо:

Отправлено: 18:52, 09-09-2010 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


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


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

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


Такое есть и в 2003, правда в чуть менее красивом виде. Но я имею ввиду чтобы кнопки были прямо в тексте, а не в меню навигации.

Отправлено: 19:03, 09-09-2010 | #3


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


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

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


Скажем так.

Оглавление.
  • б
    кратко
  • в
    кратко
  • г
    кратко

Статьи.
  • б
    Много текста
    кнопка назад
  • в
    Много текста
    кнопка назад
  • г
    Много текста
    кнопка назад

Отправлено: 19:24, 09-09-2010 | #4


Модератор


Moderator


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

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


kanapfelka, и в 2003-м процесс создания оглавления можно автоматизировать. Единственное - использовать стили и уровни. Если в документе стили не используются, то можно воспользоваться закладками и гиперссылками. Встроенная справка Word объясняет сей процесс весьма доступно.

-------
При заполнении сведений о конфигурации компьютера не забудь поставить флажок: отображать - "Да"
-------------------------------------------------------------------------------------------
Ассоциация VirusNet - помощь и обучение борьбе с вирусами. Некоторые вопросы загрузки в моем блоге


Отправлено: 20:43, 09-09-2010 | #5


Старожил


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

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


Схематично можно так:
1) вставляем стандартным способом оглавление в файл
2) устанавливаем курсор в начало заголовка оглавления и стандартным образом вставляем туда закладку - назовем ее, допустим, "ЗакладкаОглавление"
3) после этого выполняем в документе примерно такой макрос:

Код: Выделить весь код
Sub ДобавитьСсылкиНаОглавление()
Dim P As Paragraph
For Each P In ActiveDocument.Paragraphs
    If P.Style = "Заголовок 1" Then
        P.Range.Select
        Selection.Collapse (wdCollapseStart)
        Selection.TypeParagraph
        Selection.MoveUp
        Selection.Style = wdStyleNormal
        Selection.TypeText Text:="Переход к оглавлению"
        Selection.HomeKey Unit:=wdLine, Extend:=wdExtend
        ActiveDocument.Hyperlinks.Add Anchor:=Selection.Range, Address:="", _
            SubAddress:="ЗакладкаОглавление", ScreenTip:="", TextToDisplay:= _
            "Переход к оглавлению"
    End If
Next P
End Sub
Суть макроса: перебирает все абзацы в документе, находит те, у которых стиль "Заголовок 1" (если нужно - имя стиля меняем в тексте макроса), перед каждым абзацем, который оформлен этим стилем, вставляет новый абзац "Переход к оглавлению", присваивает ему обычный стиль и делает гиперссылкой на закладку, которую мы вставили в начало оглавления.

Макрос писался на скорую руку, могут быть разные тонкости, но кому нужно доведет и разовьет . А кто не может, лучше проделать такую работу ручками
Это сообщение посчитали полезным следующие участники:

Отправлено: 11:10, 10-09-2010 | #6


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


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

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


Гиперссылки это хорошо, а можно кнопку сделать?

Отправлено: 14:21, 10-09-2010 | #7


Старожил


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

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


Цитата kanapfelka:
Гиперссылки это хорошо, а можно кнопку сделать? »
Можно, но я бы не советовал.

Впрочем, если хотите должно быть так:
- включаем вкладку Разработчик (если в 2007)
- записываем макрос вставки одной кнопки в текущий абзац
- анализируем код, находим фрагмент, отвечающий непосредственно за вставку кнопки и назначение ей действия.
- корректируем мой вариант.

Лично не пробовал, т. к. считаю, что гиперссылки лучше с точки зрения последующей поддержки. Но скорее всего в моем макросе окажется необходимым заменить лишь строку, начинающуюся со слов ActiveDocument.Hyperlinks.Add

Отправлено: 05:21, 13-09-2010 | #8


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


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

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


Сделал кнопку, теперь надо к ней привязать действие для переноса на оглавление.

Отправлено: 14:51, 15-09-2010 | #9


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


Сообщения: 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



Компьютерный форум OSzone.net » Сфера Microsoft » Microsoft Office (Word, Excel, Outlook и т.д.) » 2003/XP/2000 - Навигация в документе word2003

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
программа Navitel-GPS навигация лехман Мобильные ОС, смартфоны и планшеты 4 30-07-2011 10:35
навигация по FTP серверу Hattori_Hanzo Вебмастеру 0 28-06-2010 13:55
постраничная навигация mysql, php dima1981 Вебмастеру 35 11-11-2008 19:27
Непонятная вкладка при загрузке WORD2003 Boikov Хочу все знать 4 25-11-2005 17:16
Грядущее обновление сайта: содержание, структура и навигация. Важно ваше мнение! Vadikan Автоматическая установка Windows 2000/XP/2003 20 21-03-2005 05:04




 
Переход