Как найти текущий размер шрифта в закладке? - PullRequest
1 голос
/ 08 января 2010

Мы используем объекты VB6 и Word.Basic для создания документов. Текст вставляется в различные закладки. Наше последнее требование требует, чтобы мы увеличили размер шрифта для данной вставки. В настоящее время мы делаем это, устанавливая размер шрифта 12, а не 8, который обычно присутствует, однако с точки зрения обслуживания, я бы предпочел установить это так (currentfontsize + 4) ... но пока у меня есть не удалось найти какой-либо метод для получения текущего размера шрифта.

У кого-нибудь есть способ сделать это?

Ответы [ 2 ]

2 голосов
/ 08 января 2010

Установка размера шрифта для закладки в VBA проста:

Dim doc As Document

Const MultiSelection As Long = 9999999

Set doc = Application.ActiveDocument

If doc.Bookmarks.Exists("myBookmark") Then
    If doc.Bookmarks("myBookmark").Range.Font.Size = MultiSelection Then
        ' the range of the bookmark consists of runs with different font sizes
        doc.Bookmarks("myBookmark").Range.Font.Size = 12
    Else
        doc.Bookmarks("myBookmark").Range.Font.Size _
            = doc.Bookmarks("myBookmark").Range.Font.Size + 4
    End If
End If

Вероятно, лучшим вариантом, если вы хотите пропорционально увеличить размер шрифта, является использование Font.Grow, которое увеличит размер шрифта до следующего доступного размера, например, чтобы получить от 8 до 12, вам придется звонить 4 раза.

If doc.Bookmarks.Exists("myBookmark") Then
    For i = 1 To 4
        doc.Bookmarks("myBookmark").Range.Font.Grow
    Next
End If

Если вы не знакомы с объектной моделью Word, уловка заключается в использовании Macro Recorder. В вашем случае запустите рекордер, откройте диалоговое окно закладок, перейдите к закладке и измените размер шрифта. Записанные действия будут сохранены как модуль в вашем файле Normal.dot по умолчанию. Действие изменения размера шрифта закладки приведет к следующему записанному макросу:

Selection.GoTo What:=wdGoToBookmark, Name:="myBookmark"
With ActiveDocument.Bookmarks
    .DefaultSorting = wdSortByName
    .ShowHidden = False
End With
Selection.Font.Size = 12

Этот код может быть основой для вашей собственной функции (хотя он немного отличается от приведенного выше примера, эффект будет таким же).

0 голосов
/ 08 января 2010

Учитывая объект Range, вы можете проверить range.Font.Size.

...