Sub test_q177351()
Dim bm As String
Dim re As Object
Set re = CreateObject("VBScript.RegExp")
With re
.Global = True
.Pattern = "(\s+\\[dfhlmnoprtw])|(\s?HYPERLINK)|(\s?REF)|(\s?\x22)|(\x22\s?)"
' Шаблон для получения из ссылки поставленной способом REF или HYPERLINK целевого значения
' описывает флаги - (\s+\\[dfhlmnoprtw])
' тип ссылки - (\s?HYPERLINK)|(\s?REF)
' открывающие и закрывающие кавычки - (\s?\x22)|(\x22\s?)
' После зачистки по шаблону целесообразно использование функции Trim$ для удаления лишних лидирующих и завершающих пробелов
End With
LinksCount = ActiveDocument.Fields.Count
For i = LinksCount To 1 Step -1
If (ActiveDocument.Fields(i).Type = 3) Or (ActiveDocument.Fields(i).Type = 88) Then
If Not (ActiveDocument.Fields(i).Code.Text Like "*D:\\Рабочая папка\\ГК РФ.doc*") Then
bm = Trim$(re.Replace(ActiveDocument.Fields(i).Code.Text, ""))
If Not (Bookmarks.Exists(bm)) Then
ActiveDocument.Fields(i).Unlink
End If
End If
End If
Next
End Sub
For i = LinksCount To 1 Step -1
If Not (ActiveDocument.Fields(i).Code.Text Like "*D:\\Рабочая папка\\ГК РФ.doc*") Then
If ((ActiveDocument.Fields(i).Type = wdFieldRef) And (InStr(ActiveDocument.Fields(i).Code.Text, " \h")) > 0) Or _
(ActiveDocument.Fields(i).Type = wdFieldHyperlink) Then
bm = Trim$(re.Replace(ActiveDocument.Fields(i).Code.Text, ""))
If Not (Bookmarks.Exists(bm)) Then
ActiveDocument.Fields(i).Unlink
End If
End If
End If
Next
If ((ActiveDocument.Fields(i).Type = wdFieldRef) And (InStr(ActiveDocument.Fields(i).Code.Text, " \h")) > 0) Or _
(ActiveDocument.Fields(i).Type = wdFieldHyperlink) And _
(InStr(ActiveDocument.Fields(i).Code.Text, "mailto:") = 0) And _
(InStr(ActiveDocument.Fields(i).Code.Text, "http://") = 0) Then
Если Вы уже зарегистрированы на Портале - войдите в систему, если Вы еще не регистрировались - пройдите простую процедуру регистрации.