У Иэна очень много документов, которые содержат ссылки на другие документы.

(Это не гиперссылки; это фактические ссылки на документы в Word.) Ему нужно разорвать эти ссылки, и он знает, что может загружать документы и разрывать ссылки одну за другой. Однако он задается вопросом, есть ли доступный макрос, который мог бы просмотреть все документы в папке и автоматически разорвать все ссылки в этих документах.

Вручную можно разорвать ссылки, выполнив следующие действия:

  1. Щелкните вкладку Файл на ленте.

  2. Убедитесь, что в левой части экрана выбрано «Информация».

  3. В правом нижнем углу экрана в категории «Связанные документы» щелкните «Редактировать ссылки на файлы». (Если этот параметр недоступен, это означает, что Word не считает, что в текущем документе есть ссылки.) Word отображает диалоговое окно «Ссылки». (См. Рис. 1.)

  4. Выберите ссылку, которую хотите разорвать.

  5. Нажмите «Разорвать ссылку». Вас попросят подтвердить ваше действие.

  6. Щелкните ОК.

Если вы используете Word 2007, шаги немного отличаются:

  1. Нажмите кнопку Office, а затем — Подготовить.

  2. Щелкните Изменить ссылки на файлы. (Если этот параметр недоступен, это означает, что Word не считает, что в текущем документе есть ссылки.)

Word отображает диалоговое окно «Ссылки».

  1. Выберите ссылку, которую хотите разорвать.

  2. Нажмите «Разорвать ссылку». Вас попросят подтвердить ваше действие.

  3. Щелкните ОК.

Как видите, этот процесс довольно трудоемкий, особенно если у вас много документов и каждый документ имеет несколько ссылок. Из-за трудоемкости этого процесса Ян искал способ разорвать ссылки под управлением макроса.

Чтобы сделать это в макросе, макрос должен открыть каждый документ в папке, разорвать все найденные ссылки, а затем сохранить документ.

Определить, сколько документов находится в папке, открыть и закрыть их довольно просто. Если вы хотите разорвать ссылки, макрос должен просмотреть каждое поле в документе и разорвать только те, которые используют поле LINK. Следующий макрос показывает, как это делается.

Sub RemoveLinks()

Dim fleArray() As String     Dim flCount As Long     Dim k As Long     Dim fle As String     Dim fld As Field     Dim currentFileName As String     Dim docPath As String     Dim bDirty As Boolean

docPath = ActiveDocument.Path & "\"

currentFileName = ActiveDocument.Name

fle = Dir(docPath & "doc")

flCount = -1     ReDim fleArray(0)

Do While fle <> ""

flCount = flCount + 1         ReDim Preserve fleArray(flCount)

fleArray(flCount) = fle         fle = Dir()

Loop

If MsgBox("There are " & flCount + 1 & " files to be processed." _       & vbCrLf & "Do you want to continue?", vbYesNo, "Break links") _       = vbNo Then Exit Sub

For k = 0 To UBound(fleArray)

fle = fleArray(k)

Options.UpdateLinksAtOpen = False         Documents.Open FileName:=docPath & fle         Options.UpdateLinksAtOpen = True         bDirty = False         For Each fld In ActiveDocument.Fields             If fld.Type = wdFieldLink Then                 ' Uncomment the following if link needs to be updated                 ' before the link is broken                 ' fld.LinkFormat.Update                 fld.LinkFormat.BreakLink                 bDirty = True             End If         Next fld         If bDirty Then ActiveDocument.Save    ' Only save if links broken         If ActiveDocument.Name <> currentFileName Then ActiveDocument.Close     Next k End Sub

Обратите внимание на цикл For Each, который просматривает каждое поле (fld) в коллекции Fields. Он проверяет, равно ли свойство Type поля wdFieldLink, что означает, что это поле LINK. Если это так, код использует метод BreakLink со свойством LinkFormat для поля, эффективно удаляя ссылку.

_Примечание: _

Если вы хотите знать, как использовать макросы, описанные на этой странице (или на любой другой странице на сайтах WordTips), я подготовил специальную страницу, содержащую полезную информацию.

link: / wordribbon-WordTipsMacros [Щелкните здесь, чтобы открыть эту специальную страницу в новой вкладке браузера].

WordTips — ваш источник экономичного обучения работе с Microsoft Word.

(Microsoft Word — самая популярная программа для обработки текстов в мире.) Этот совет (2357) относится к Microsoft Word 2007, 2010, 2013 и 2016.