Word - 提取图片‘替代文本 - 描述’

Word - 提取图片‘替代文本 - 描述’

我有一个包含 500 多张嵌入图像的 Word 文档。

对于文档中的每个图像,我想从图像的“替代文本”部分获取“描述”(当您右键单击图像>属性>替代文本时,您可以看到这一点)

然后我想将该替代文本作为普通文本放在图像下方。

有没有办法可以用 Word 中的 vb 宏来做到这一点?

我在 Windows 7 上使用 Microsoft Word 2010。

答案1

Word VBA 宏在图像下方插入替代文本

Sub InsertAltTextBelowImages()

    For i = ActiveDocument.Shapes.Count To 1 Step -1
        If ActiveDocument.Shapes(i).Type = msoPicture Then
            ActiveDocument.Shapes(i).ConvertToInlineShape
        End If
    Next i

    For Each img In ActiveDocument.InlineShapes
        If img.Type = wdInlineShapePicture Then
            img.Range.InsertAfter (vbCrLf & img.AlternativeText & vbCrLf)
        End If
    Next

End Sub

两个问题

  1. Word 识别两种类型的图像:内联图像和浮动图像。浮动图像没有范围属性,这样 Word 就不知道图像实际上属于哪个段落。您可以将 ( ConvertToInlineShape) 浮动图像转换为普通内联图像。但这会弄乱您的布局

  2. 您不能像您所说的那样直接在“下方”插入文本。如果图片下方没有行怎么办?您必须插入至少两个分页符(vbCrLf)以及替代文本。这会再次弄乱您的 Word 布局


查看我的比较截图,了解我的宏如何影响布局

在此处输入图片描述

在此处输入图片描述

答案2

vb 宏可以完成用户可以做的所有事情,但对其进行编程将是一项艰巨的任务。

我建议将您的 word 文档导出为 html 文档。然后,您可以使用文本编辑器(例如 notepad++)对其进行编辑,并使用正则表达式的巧妙搜索/替换操作一次性将每个图像更改为您想要的内容。然后,您可以再次保存它,并在 word 中重新加载 html 文档以将其转换回 word 文档。

我敢打赌,这会让你完成这项工作比编写宏快 10 倍。

相关内容