1

Тема: Преобразование гиперссылок в ссылки

Здравствуйте! Очень нужно в одном большом документе преобразовать гиперссылки в обычные вордовские ссылки.
Нашел статью http://wordexpert.ru/page/kak-preobrazo … nyiy-tekst, в комментариях к которой дан макрос:

Sub HyperLinkToFootNote()
  Dim oHyp As Hyperlink
  For Each oHyp In ActiveDocument.Hyperlinks
    ActiveDocument.Footnotes.Add oHyp.Range, , oHyp.TextToDisplay
  Next
End Sub

Но увы - работает он неправильно. Гиперссылки не преобразует, а создает рядом пустые обычные...
Выдается ошибка в этой строке:
ActiveDocument.Footnotes.Add oHyp.Range, , oHyp.TextToDisplay

Неужели это настолько сложная задача? Очень нужно - помогите!  sad

2

Re: Преобразование гиперссылок в ссылки

1. В ссылке на статью указанный макрос относится не к Вордовским ссылкам а к сноскам, которые вставляются в конце страницы. При этом гиперссылки не удаляются.
2. Если Вы в своём вопросе говорите о Перекрестных ссылках, то уточните, тогда постараюсь Вам помочь.

3

Re: Преобразование гиперссылок в ссылки

Речь идет об обычных текстовых ссылках (сносках) в документе Word, постраничных или концевых - неважно (они друг в друга легко преобразуются стандартными методами).
Поясню, что случилось.
Были тексты книг, которые для заливки на сервер преобразовали в html (сохранили как веб-страницы). Все ссылки (а их очень много) превратились соответственно в гиперссылки. Вордовские оригиналы оказались, увы, утрачены.
Как теперь из html-страницы с гиперссылками и текстом внутри нее получить документ Word с обычными сносками?

4

Re: Преобразование гиперссылок в ссылки

Выложите образец текста

5

Re: Преобразование гиперссылок в ссылки

Вот html-код (вырезал 1 абзац с одной гиперссылкой для примера, в книге больше 500 стр.).

<html>
<body>
<p>Постоянный творческий импульс интеллектуальным занятиям философа придавала неизменная поддержка близких ему людей, в которых он находил благосклонных слушателей и справедливых ценителей. Вокруг него сложился дружеский кружок, спаянный общностью культурных и политических интересов. Высшим авторитетом в этом кружке почитался Симмах, широко известный как человек, до конца преданный идеалам античной культуры. При этом в этот кружок входил также диакон Иоанн, впоследствии ставший папой Иоанном I (523&#8209;526)<a href="#_ftn1" name="_ftnref1" title=""><sup><sup>[1]</sup></sup></a>. Ему Боэций посвятил три своих теологических трактата и поручил составление сборника своих трудов. В политическом и культурном отношении члены кружка в определенной мере ориентировались на Восточную Римскую Империю, где в несколько иных формах шел аналогичный процесс переработки античного наследия в христианство и где церковь придерживалась кафолической веры в отличие от арианства правящих в Италии готов.</p>
<p></p><br>
<hr>
<p><a href="#_ftnref1" name="_ftn1" title="">[1]</a> Уколова В. И. Последний римлянин Боэций. М., 1987. С. 36.</p>
</body>
</html>

6

Re: Преобразование гиперссылок в ссылки

Выложите пример Вордовского файла или у Вас текст открывается как в посте 5?. Или выложите Файл сохраненный как Веб страница.

7

Re: Преобразование гиперссылок в ссылки

Вот, прикладываю все в виде файлов (для наглядности из двух абзацев).
primer1.htm - то, что есть
primer1.doc - то, что можно получить, просто сохранив html в ворд (гиперссылки)
primer1_snoski.doc - то, что нужно (сноски вместо гиперссылок)

PS. Упаковал, поскольку тут больше одного файла прикрепить не удается.

Post's attachments

primeri.zip 8.74 Кб, 9 скачиваний с 2012-10-13 

You don't have the permssions to download the attachments of this post.

8

Re: Преобразование гиперссылок в ссылки

Разобрался с Вашей проблемой, но макрос написать смогу по мере свободного времени.

9

Re: Преобразование гиперссылок в ссылки

Спасибо (заранее)!  big_smile
Будем ждать...

10

Re: Преобразование гиперссылок в ссылки

Уважаемые специалисты, как я понял макрос написать не так просто оказалось, но может быть существует какая-то полуавтоматическая возможность замены?
Если бы можно было отыскивать текст гиперссылки, вырезать и вставлять автоматически как сноску... но вот беда, средствами word этого похоже не сделать.
А если в html-файле предварительно гиперссылки во что-нибудь преобразовать? У меня такое ощущение, что "истина где-то рядом", но ее не ухватить.  hmm

11

Re: Преобразование гиперссылок в ссылки

Да определить Гиперссылку как место куда вставлять Сноску не сложно. Текст сноски также определить не сложно, если принять, что Текст сноски состоит из 1-го абзаца. Из выложенного примера не понятно, как будет вести себя текст если в ворде открывается не одна страница а несколько.

12

Re: Преобразование гиперссылок в ссылки

Может выложить пример из нескольких страниц?

13

Re: Преобразование гиперссылок в ссылки

Желательно, чтобы учесть все нюансы и протестировать.

14

Re: Преобразование гиперссылок в ссылки

Вот. И страниц несколько и сносок два с лишним десятка.  smile

Post's attachments

primer2.zip 36.07 Кб, 11 скачиваний с 2012-10-17 

You don't have the permssions to download the attachments of this post.

15

Re: Преобразование гиперссылок в ссылки

Уважаемый alex2012!
Из представленного вами примера можно сделать однозначный вывод, что в оригинале Ворда были установлены именно Перекрестные ссылки, а не просто сноски Сноски. А в решение проблемы вы просите установить именно Сноски. Что в принципе не теряет информации, но априори не является оригиналом Ворд. Так что? Делаем сноски?

16

Re: Преобразование гиперссылок в ссылки

Конечно делаем сноски!  smile  С ними хоть можно оперировать как-то - преобразовывать в концевые, подстраничные, искать и т.д., а с гиперссылками ничего не сделать.

17

Re: Преобразование гиперссылок в ссылки

Ну вот, кое-что родил. big_smile Импортируйте вложенный модуль в проект Normal VBA. Откройте свой html-файл и запустите макрос Замена_гиперссылок_на_сноски из меню макросов.
Отпишите как пройдет.

Отредактировано aap77 (17.10.2012 12:24:39)

Post's attachments

HyperChange.bas 3.81 Кб, 23 скачиваний с 2012-10-17 

You don't have the permssions to download the attachments of this post.

18

Re: Преобразование гиперссылок в ссылки

Спасибище огромное!!!  big_smile  На примере работает, сейчас буду на реальных текстах пробовать.   big_smile

19

Re: Преобразование гиперссылок в ссылки

Отпишите как будет результат.

20

Re: Преобразование гиперссылок в ссылки

На большом тексте (346 страниц, 427 гиперссылок, рисунки, таблицы...) - зависает где-то в районе 141 ссылки... видимо надо резать на более мелкие части.

21

Re: Преобразование гиперссылок в ссылки

Попробуйте подождать. Может просто из-за большого количества думает долго.

22

Re: Преобразование гиперссылок в ссылки

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

23

Re: Преобразование гиперссылок в ссылки

Зацикливание может быть либо из-за большого объема, либо зацикливание в коде, а так как его в коде нет, надо запастись терпением и подождать окончания работы макроса.

24

Re: Преобразование гиперссылок в ссылки

Такое ощущение, что что-то "не нравится" в самом тексте.  hmm  Что бы я ни делал, на конкретной сноске №141 все стопорится (в другом файле успешно прошло 150 сносок)... Могу прислать этот кусок файла на е-мэйл (тут выкладывать не хотелось бы - авторские права и все такое...).

25

Re: Преобразование гиперссылок в ссылки

VBAproject77@yandex

26

Re: Преобразование гиперссылок в ссылки

big_smile  big_smile  big_smile
Я кажется понял в чем дело: автора макроса поблагодарили ровно 141 раз на сегодняшний день!!! Мистика чисел...  lol

27

Re: Преобразование гиперссылок в ссылки

Я разобрался в причине, завтра выложу откорректированный макрос. А насчет мистики, это интересно  big_smile

28

Re: Преобразование гиперссылок в ссылки

Вот откорректированный модуль.

Post's attachments

HyperChange.bas 3.79 Кб, 60 скачиваний с 2012-10-18 

You don't have the permssions to download the attachments of this post.

29

Re: Преобразование гиперссылок в ссылки

Все отработало на ура - целый текст, не резаный!  smile
Еще раз спасибо!!!
Завтра буду пробовать на других файлах.