我有很多包含链接图片的Word文件。这些Word文件是在网络驱动器上自动创建的,该文件位于必须定期清空的临时文件夹中。
所以我必须将Word文件移动到另一个文件夹进行存档。 当我移动Word文件时,图像始终指向临时文件夹。当我删除临时文件夹时,移动的Word文件不再具有工作图像。
有两种方法可以解决这个问题:
我知道我可以通过文件手动执行此操作 - >编辑文件链接,但我更喜欢通过宏来执行此操作。这个宏同时执行这两个操作:首先它更改存档文件夹的路径,然后它断开链接:
Sub ConvertLinkedImagesToEmbedded()
Dim i As Integer
Dim OldName As String
Dim OldPath As String
Dim NewPath As String
For i = 1 To ActiveDocument.InlineShapes.Count
ActiveDocument.InlineShapes.Item(i).Select
If ActiveDocument.InlineShapes.Item(i).Type = wdInlineShapeLinkedPicture Then
OldName = ActiveDocument.InlineShapes.Item(i).LinkFormat.SourceName
OldPath = ActiveDocument.InlineShapes.Item(i).LinkFormat.SourcePath
NewPath = ActiveDocument.Path & "\" & OldName
Dim Ext As String
If FileThere(NewPath) Then
Selection.InlineShapes.AddPicture FileName:=NewPath, LinkToFile:=False, SaveWithDocument:=True
ActiveDocument.InlineShapes.Item(i).LinkFormat.Update
Else
MsgBox "ConvertLinkedImagesToEmbedded: image file " & NewName & " does not exist.", vbOKOnly
End If
End If
Next i
End Sub
Function FileThere(FileName As String) As Boolean
FileThere = (Dir(FileName) > "")
End Function
这看起来应该有效:当我运行它时,每个图像的类型从wdInlineShapeLinkedPicture更改为wdInlineShapePicture。 文件大小也会更改,表示图像已嵌入文件中。当我删除临时文件夹时,Word文件仍然显示图像。
但是当我转到文件 - >编辑文件链接时,所有图像仍然列为链接图像。更糟糕的是,链接仍然指向临时文件夹。因此,如果有人使用此对话框更新其中一个文件,他将丢失图像。
所以问题是,我怎样才能获得File-> Edit链接到文件对话框以显示图像的正确状态(即嵌入)?
答案 0 :(得分:0)
我刚遇到原始帖子,当时正在寻找一种方法来取消链接的图片的链接;这就是我最终得到的。我正在为图片添加边框以验证是否已完成操作;如果不需要,可以轻松将其注释掉。
Sub BreakPictureLinks()
Dim intCount As Integer
Dim i As Integer
With ActiveDocument
'loop through inline shapes
For i = 1 To .InlineShapes.Count
With .InlineShapes(i)
'check if the current shape is a linked picture
If .Type = wdInlineShapeLinkedPicture Then
' Give it a border
.Line.BackColor = vbBlack
.Line.Weight = 1
.Line.Style = msoLineSingle
' unlink it
'.LinkFormat.SavePictureWithDocument = True
.LinkFormat.BreakLink
End If
End With
Next i
End With ' Active document
End Sub