Разрыв ссылки на картинку программно в MS Word 2010

У меня есть документ Word с картинками, которые связаны. Я хочу встроить их в документ word, но не хочу делать это вручную.

вручную собирается: файл - > редактировать ссылки на файлы - > выбор и нажатие "разрыв ссылки" делает именно то, что я хочу сделать.

Я нашел какой-то VBA код для взлома ссылок на поля, но это не помогает разбивать ссылки на мои картинки. Вот код, который я пробовал:

For Each objField In ActiveDocument.Fields
  If Not objField.LinkFormat Is Nothing Then
    objField.LinkFormat.Update
    objField.LinkFormat.BreakLink
    ActiveDocument.UndoClear
  End If
Next

когда я нажмите Alt + F9 в моем документе для отображения полей ничего не происходит с моими фотографиями, но другие поля (ссылки и т. д.) расширяются/отображаются. Поэтому я предполагаю, что эти ссылки на изображения-это нечто иное, чем "поля".

Как я могу разорвать эти ссылки изображения в VBA?

Изменить Примечание документ word в основном представляет собой html-файл. Это то, что вы получите, открыв .html-файл в Word.

30
задан exalt
31.03.2023 22:02 Количество просмотров материала 3233
Распечатать страницу

1 ответ

поскольку документ word был фактически html-документом, открытым в Word, он не включал специальную разметку word для идентификации полей. В результате функциональность GUI работала, но не решение vba, как описано в вопросе. Решение состояло в том, чтобы сначала сохранить документ word с новым именем (таким образом, генерируя разметку word), а затем запустить макрос breakLinks.

макрос для сохранения документа:

Sub saveAsDoc()
    Dim newName As String
    newName = ActiveDocument.Path & "\" & "fix_" & ActiveDocument.Name
    ActiveDocument.SaveAs2 FileName:=newName, FileFormat:=wdFormatDocument
End Sub

макрос для взлома ссылки:

Sub breakLinks()
For Each objField In ActiveDocument.Fields
  If Not objField.LinkFormat Is Nothing Then
    objField.LinkFormat.Update
    objField.LinkFormat.BreakLink
    ActiveDocument.UndoClear
  End If
Next
End Sub

Главная макрос, который должен выполняться из скрипта extrenal. DisplayAlerts, чтобы убедиться, что нет поп-нас.

Sub theTrick()
    Application.DisplayAlerts = False
    Call saveAsDoc
    Call breakLinks
    ActiveDocument.save
    Application.DisplayAlerts = True
End Sub
1
отвечен exalt 2023-04-02 05:50

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх