将图Alt描述转换为Word中的图片标题

时间:2018-02-22 23:00:37

标签: vba ms-word

我需要一种方法将图像的Alt描述(在HTML中指定)放入Word DOCX图像的标题中。这需要在文档中的许多图像中完成,因此宏最好。

假设HTML doc带有与此

类似的img标签
<img src="http://www.example.com/path/to/image/picture01.jpg" 
title="picture 01 title" 
alt="this is alt text" 
caption="this is a caption field">

此HTML文档将导入Word 2010(通过“文件”,“打开”)。图像将显示在文档中。

现在,如何获取'title'属性(在Format Picture的Alt-Text对话框中显示为描述 - 见下面的截图)到图像的标题中?

请注意,图片代码中的caption参数未转换为该图片的字幕标题。

示例图像的Alt-Text对话框,其中显示图像的alt值作为描述 enter image description here

2 个答案:

答案 0 :(得分:1)

Microsoft Word有一个Range.InsertCaption方法,它会插入字段代码以自动为图像编号。当你要求插入替代文本时,我的感觉是你使用术语caption只是作为一个指令来获取每个图像下面的文本在它自己的回车上。这就是这段代码的作用:

Sub GenerateAltTextCaptions()

Dim AltTextCaption As String
Dim ImageRange As Range

Selection.GoTo What:=wdGoToSection, Which:=wdGoToFirst
With ActiveDocument
    For i = 1 To .InlineShapes.Count
        AltTextCaption = .InlineShapes(i).AlternativeText
        Set ImageRange = .InlineShapes(i).Range
        ImageRange.Collapse Direction:=wdCollapseEnd
        ImageRange.InsertAfter vbCr
        ImageRange.InsertAfter AltTextCaption
    Next
End With

End Sub 

答案 1 :(得分:0)

是的,我认为你已经找到了转换的好方法。很高兴你能找到它!

下面的代码将循环文档中的所有 InlineShapes ,如果备用文本不为空,则使用该文本创建标题。

InsertCaption仅适用于InlineShapes的VBA。用户可以为形状插入标题(带有文本换行格式的图形),因为Word会评估所选图形并创建一个宽度相同的文本框,并将其定位在图形的正下方。但是,Shape和文本框不以任何方式链接在一起。因此,VBA不提供此功能,并且需要一些&#34;创意&#34;编程。

Sub InsertCaptionFromAltText()
    Dim doc as Word.Document
    Dim ils As word.InlineShape
    Dim captionText As String

    Set doc = ActiveDocument
    Set ils = doc.InlineShapes(1)
    For each ils in doc.InlineShapes
      captionText = ils.AlternativeText
      If Len(captionText) > 0 Then
          ils.Range.InsertCaption Label:=wdCaptionFigure, _
                                  Title:=captionText, _
                                  Position:=wdCaptionPositionBelow
      End If
    Next
End Sub