Шрифт всех заголовков в документе Word - PullRequest
0 голосов
/ 10 августа 2009

Я пытаюсь получить название шрифта и размер всех заголовков из текстового документа. Есть идеи как его получить?

Ответы [ 3 ]

1 голос
/ 10 августа 2009

Базовая структура будет выглядеть примерно так:

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 для получения дополнительной информации, если вы хотите пойти по этому пути.

0 голосов
/ 10 августа 2009

Это то, что я получил из краткого обзора страницы MSDN в "HeadingStyles" :

MsgBox ActiveDocument.HeadingStyles(1).Style
0 голосов
/ 10 августа 2009

Самое простое решение - открыть документ в Word и получить доступ к объектной модели. Обычно это делается с использованием VBA, но вы также можете использовать .NET (например, C # og VB.NET) с помощью VSTO (Visual Studio Tools for Office). Лично я нахожу C # / VB.NET намного лучшими языками, чем VBA.

Как только вы получите доступ к объектной модели, вам придется перечислять абзацы в документе. Когда вы найдете заголовок (возможно, определенный по стилю), вам придется выяснить формат заголовка.

...