Word文档中所有标题的字体

时间:2009-08-10 11:51:13

标签: word-vba

我正在尝试从word文档中检索所有标题的字体名称和大小。知道如何获得它吗?

3 个答案:

答案 0 :(得分:1)

基本结构如下:

Public Sub ShowFontAndSize()     Dim singleLine As Paragraph     Dim lineText As String

For Each singleLine In ActiveDocument.Paragraphs
 Debug.Print singleLine.Range.Font.Name
 Debug.Print singleLine.Range.Font.Size
Next singleLine

End Sub

如果在同一行上有不同的字体和大小,这将无法察觉。如果这是可能的话,你需要在段落循环中添加另一个带有For Each singleCharacter In singleLine.Range.Characters的循环。

编辑:一个棘手的问题是,一旦你收集了这些数据该怎么办。构建一个数组似乎很自然,但VBA数组是无用的,因为像.append()这样的基本方法需要你重新整理整个数组。如果您想沿着这条路走下去,请参阅http://www.cpearson.com/excel/VBAArrays.htm了解更多信息。

答案 1 :(得分:0)

最直接的解决方案是在Word中打开文档并访问对象模型。这通常使用VBA完成,但您也可以使用VSTO(Visual Studio Tools for Office)使用.NET(例如C#og VB.NET)。我个人认为C#/ VB.NET语言比VBA好得多。

一旦访问了对象模型,就必须枚举文档中的段落。当您找到标题(可能由样式定义)时,您必须弄清楚标题的格式。

答案 2 :(得分:0)

这是我从MSDN page on "HeadingStyles"

的简短略图中得到的
MsgBox ActiveDocument.HeadingStyles(1).Style