1

Тема: Автоматическое формирование закладок из заголовков

Помогите, пожалуйста, с проблемой!

Как сформировать bookmarks на основе заголовков документа? Желательно, чтобы названиязакладок были от названия заголовков, без пробелов, скажем. Или страницы. Но вообще любые подойдут, потому как просто беда  sad .
Что-то подобное формируется, когда создаешь оглавление, но эти скрытые закладки не подходят по двум причинам. Во-первых я их не могу идентифицировать - к какому месту они относятся. Но самое важное, при обновлении документа все гиперссылки, созданные на их основе, слетают.
Наверняка это можно как-то собрать макросом?

Буду очень благодарна за любую помощь и совет!

2

Re: Автоматическое формирование закладок из заголовков

если бы еще понять, зачем нужны эти закладки

3

Re: Автоматическое формирование закладок из заголовков

shanemac51 пишет:

если бы еще понять, зачем нужны эти закладки

Нужен жутко вебизированный документ с кучей перекрестных ссылок внутри. И место, куда устанавливается ссылка, не совпадает по тексту с источником. Вобщем процесс и без того будет долгим, а в свете ручной расстановки закладок превращается в смертельный. И документ оооооочень большой.

4

Re: Автоматическое формирование закладок из заголовков

ПОПРОБУЙТЕ ВАРИАНТ

Sub w140516_1044_z()
'
Dim pr As Paragraph, j1, S1, s2, j2, j2k, ss
j1 = ActiveDocument.Bookmarks.Count
Do While j1 > 0
ActiveDocument.Bookmarks(j1).Delete
j1 = j1 - 1
Loop
For Each pr In Word.ActiveDocument.Paragraphs
j1 = j1 + 1
pr.Range.Select

''If pr.Range.Text Like "S:*" Then
If pr.OutlineLevel <> wdOutlineLevelBodyText Then
S1 = pr.Range.Text
ss = ""
j2 = 0
j2k = Len(S1)
If j2k > 50 Then j2k = 50
Do While j2 < j2k
j2 = j2 + 1
s2 = Mid(S1, j2, 1)
If s2 Like "[а-яА-ЯёЁa-zA-Z0-9]*" Then
ss = ss & s2
Else
ss = ss & "_"
End If
Loop


Debug.Print Len(ss), ss



    With ActiveDocument.Bookmarks
        .Add Range:=Selection.Range, Name:=ss & "_" & j1
        .DefaultSorting = wdSortByName
        .ShowHidden = False
    End With
    End If
    Next pr
End Sub

5

Re: Автоматическое формирование закладок из заголовков

КОНЕЧНО ПРОБУЙТЕ НА КОПИИ

6

Re: Автоматическое формирование закладок из заголовков

shanemac51 пишет:

КОНЕЧНО ПРОБУЙТЕ НА КОПИИ


Да, безусловно! Спасибо, попробовала, выдал ошибку - Run-time error 5828: неверное имя закладки.

7

Re: Автоматическое формирование закладок из заголовков

а на какой строке ошибка

8

Re: Автоматическое формирование закладок из заголовков

и посмотрите в отладчике
--какая строка обрабатывалась
--нет ли у нее какой-то особенности(рамка, надпись, таблица.....)

9

Re: Автоматическое формирование закладок из заголовков

какая версия WORD

10

Re: Автоматическое формирование закладок из заголовков

word 2007,

в visual строка
''If pr.Range.Text Like "S:*" Then
стала зеленой, как коментарий. Может кавычки убрать?

В ворде обработка остановилась на заголовке рисунка.

Если я что-то не так сказала, пошу прощения)), в мир макрсов пока только вхожу

11

Re: Автоматическое формирование закладок из заголовков

на этоу строку не смотрите ---осталась отладка
''If pr.Range.Text Like "S:*" Then

=========
исправьте строку
If pr.OutlineLevel <> wdOutlineLevelBodyText Then

на

If pr.OutlineLevel < 4 Then
==========
попробуйте
в противном случае надо смотреть ваш документ

12

Re: Автоматическое формирование закладок из заголовков

shanemac51 пишет:

на этоу строку не смотрите ---осталась отладка
''If pr.Range.Text Like "S:*" Then

=========
исправьте строку
If pr.OutlineLevel <> wdOutlineLevelBodyText Then

на

If pr.OutlineLevel < 4 Then
==========
попробуйте
в противном случае надо смотреть ваш документ

Спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
Спасибо!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
И еще раз - спасибо !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

Вобщем все сработало, вы меня очень выручили!

Единственный вопрос на последок - у меня заголовки до 6 уровня. Насколько я поняла, последнее внесенное изменение ограничило их 4-ым уровнем, правильно? Если мне нужен 6-ой включительно, то м.б. скорректировать на "< 7"? Если я правильно предположила.

13

Re: Автоматическое формирование закладок из заголовков

если вы рисунки не прицепили на один из этих уровней (6-7)
ошибку ведь дало из-за надписей к рисункам

14

Re: Автоматическое формирование закладок из заголовков

засунула ... Но это решаемо).
А еще маленький вопросик - куда-то делись остальные закладки, которые я делала вручную до этого. Это нормально  smile ?

15

Re: Автоматическое формирование закладок из заголовков

все старые закладки --удалены
поэтому и на копии
иначе --будет наложение закладок, что приведет неизвестно к чему
===========
похоже, что эту задачу нельзя решать, не понимая желаемого результата

16

Re: Автоматическое формирование закладок из заголовков

нет, все замечательно, спасибо