Удаление всех гиперссылок из документа Word
сохрани его как просто текст
Форматриование потеряется. Картинки, таблицы
Измени формат ссылок, чтоб они с текстом сливались
самое интересное - один раз она таки сработала каким-то образом.
Sub ClearHyperLinks
Dim doc As Word.Document
Dim hl As Word.Hyperlink
Set doc = Documents(1)
For Each hl In doc.Hyperlinks
hl.Delete
Next hl
End Sub
Но больше не хочет ни в какую. Может есть знатоки этого замечательного языка,
которые смогут макрос до ума довести. Проблема еще актуальна.
б) и что, при этом не потерялся текст?
а) возможно, макрос еще не завершился. У интерпретируемых языков такое бывает;Нет, он как-то по другому ругается, не могу сейчас сказать как... Завтра на работе посмотрю.
б) и что, при этом не потерялся текст?Текст сохранился. Я так понял - гиперссылка в ворде является независимым объектом и связана
с текстом "территориально". Кроме того текст в том месте где стоит ссылка подсвечивается.
А обязательно макрос? Select, ctrl-shift-F9 не подойдет?
Sub ClearHyperLinks_
Dim n As Long
For n = 1 To ActiveDocument.Hyperlinks.Count
ActiveDocument.Hyperlinks(1).Delete
Next n
End Sub
А что, в VBA пределы изменения параметра цикла вычисляются до выполнения цикла?
ActiveDocument.Hyperlinks(1 ).Delete
Как дойдет до нуля -- останавливается.
Тогда будет удалена только половина ссылок, потому что ActiveDocument.Hyperlinks.Count уменьшается, а n увеличивается
Я так понимаю его работу:
создается цикл (который отработает n раз, независимо от изменения hyperlinks.Count)
при каждом вызове Delete нумерация объектов "смещается" 2ой станет 1ым и т.д.
В предыдущем посте я действительно нагнал
Ну да, я и говорю, пределы изменения параметра цикла вычисляются до выполнения цикла.
Ну да, я и говорю, пределы изменения параметра цикла вычисляются до выполнения цикла.Судя по всему так и есть, потому что макрос работает
Оставить комментарий
KAPUSTA
Поделитесь кто-нибудь макросом, пожалуйста, который может сразу все гиперссылкииз вордового документа удалить а текст их оставить. Ковырятся руками надоело страшно.