Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Word
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.09.2010, 13:38   #1
kanapfelka
Пользователь
 
Регистрация: 20.09.2010
Сообщений: 11
По умолчанию Навигация в документе

Имеются большие документы (порядка 100+ страниц). Одно оглавление занимает 13 страниц. В этом документе хотелось бы организовать навигацию. С оглавления-то на текст перекидывает, а вот назад хочется кнопку «назад» (Alt+Стрелка влево или варианты)

В ВБА я очень начинающ( это мой первый опыт).
Как вариант можно сделать кнопку
Код:
Sub Макрос6()
    Selection.Find.ClearFormatting
    Selection.Find.Style = ActiveDocument.Styles("Заголовок 1")
    With Selection.Find.ParagraphFormat
        With .Shading
            .Texture = wdTextureNone
            .ForegroundPatternColor = wdColorBlack
            .BackgroundPatternColor = wdColorBlack
        End With
        .Borders.Shadow = False
    End With
    With Selection.Find
        .Text = ""
        .Replacement.Text = " ^p"
        .Forward = True
        .Wrap = wdFindAsk
        .Format = True
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
    Selection.Copy
    Selection.Find.ClearFormatting
    With Selection.Find
        .Text = "МНЕНИЯ, ИНТЕРВЬЮ"    В этом месте бы вставить из буфера
        .Replacement.Text = " ^p"
        .Forward = False
        .Wrap = wdFindAsk
        .Format = False
        .MatchCase = False
        .MatchWholeWord = False
        .MatchWildcards = False
        .MatchSoundsLike = False
        .MatchAllWordForms = False
    End With
    Selection.Find.Execute
    Selection.Find.Execute
End Sub
которая ищет за собой первый попавшийся заголовок 1 берет его название и ищет его с начала документа и туда переходит. Но я не в курсе в какой переменной хранится содержимое буфера обмена(и хранится ли, или надо заносить?). Да ещё и на ответы да/нет надо отвечать
kanapfelka вне форума Ответить с цитированием
Старый 20.09.2010, 19:47   #2
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

«Всё украдено до нас»©
В смысле такая кнопка уже существует, и называется «Назад». В 2003-м она расположена на панели «Веб-узел», а в 2007-2010 легко добавляется на панель быстрого доступа
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 21.09.2010, 10:12   #3
kanapfelka
Пользователь
 
Регистрация: 20.09.2010
Сообщений: 11
По умолчанию

Это, да, но увидев её отдел мониторингов захотел её прям в тексте.
kanapfelka вне форума Ответить с цитированием
Старый 21.09.2010, 10:48   #4
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Тогда нужно просто продублировать вызов этой функции:
Код:
Application.Run MacroName:="WebGoBack"
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 21.09.2010, 12:41   #5
kanapfelka
Пользователь
 
Регистрация: 20.09.2010
Сообщений: 11
По умолчанию

От здорово! Теперь будем макрос писать в этой теме.

Изложу суть.
Ищем в разметке документа второй знак ▪, и перед ним знак переноса каретки(это же он?) — ¶, перед этим знаком вставляем кнопку с кодом. Делаем до упора.
Он конечно навставляет много лишнего, но другой вариант — искать заголовки и отступив за ¶ перед заголовком вставлять кнопку.
kanapfelka вне форума Ответить с цитированием
Старый 21.09.2010, 13:14   #6
viter.alex
Балуюсь кодами
Участник клуба
 
Аватар для viter.alex
 
Регистрация: 09.01.2009
Сообщений: 1,837
По умолчанию

Может просто вставить на каждой странице?
Лучше день потерять — потом за пять минут долететь!©
viter.alex вне форума Ответить с цитированием
Старый 21.09.2010, 13:57   #7
kanapfelka
Пользователь
 
Регистрация: 20.09.2010
Сообщений: 11
По умолчанию

Это как вариант, я тоже думал о вставке просто на странице, потому что если вставлять перед каждым заголовком, то, иногда, получается 3-4 кнопки на страницу, что конечно выглядит не очень.

упд. Хотя на каждой странице они проставятся и на оглавлении

Последний раз редактировалось kanapfelka; 21.09.2010 в 14:00. Причина: упд
kanapfelka вне форума Ответить с цитированием
Старый 21.09.2010, 15:52   #8
kanapfelka
Пользователь
 
Регистрация: 20.09.2010
Сообщений: 11
По умолчанию

Sub Расстановка кнопок()

For Each Страница?

ActiveDocument.ToggleFormsDesign
Selection.InlineShapes.AddOLEContro l ClassType:="Forms.CommandButton.1"
CommandButton.Caption = "К оглавлению"

Next



End Sub

Последний раз редактировалось kanapfelka; 21.09.2010 в 15:57.
kanapfelka вне форума Ответить с цитированием
Старый 21.09.2010, 16:01   #9
tyrus2
Пользователь
 
Регистрация: 18.04.2010
Сообщений: 11
Счастье

я бы сделал так:

1) в начале документа повесил бы bookmark, c именем top_document.
2) в нужном месте вешал бы линк на этот bookmark.
А вот как вам удобно - ссылка по тексту или оп нажатию кнопки - это вам решать
tyrus2 вне форума Ответить с цитированием
Старый 21.09.2010, 16:36   #10
kanapfelka
Пользователь
 
Регистрация: 20.09.2010
Сообщений: 11
По умолчанию

Цитата:
Сообщение от tyrus2 Посмотреть сообщение
1) в начале документа повесил бы bookmark
И пришлось бы крутить колесо на 10-12 страниц вниз по оглавлению.
Можно и кнопки руками рассовать, но зачем, если можно посоветоваться и научиться?
kanapfelka вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Страницная навигация R-87A Общие вопросы .NET 13 25.04.2010 18:36
Навигация по листу Rodion Microsoft Office Excel 1 19.04.2010 19:47
Навигация по элементах в ListBox RIO Компоненты Delphi 4 23.08.2009 15:00
Навигация по DBGrid uraura Компоненты Delphi 1 01.11.2008 18:13
Навигация по таблице Натуся Помощь студентам 4 31.10.2007 00:58