我需要一种方法将图像的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
参数未转换为该图片的字幕标题。
答案 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