Vb6 如何在书签中找到当前字体大小?

Vb6 如何在书签中找到当前字体大小?,vb6,ms-word,Vb6,Ms Word,我们正在使用VB6和Word.Basic对象创建文档。文本插入到各种书签中。我们的最新要求是增加给定插入的字体大小。我们目前正在通过将字体大小设置为12而不是通常的8来实现这一点,但是从维护的角度来看,我希望能够将其设置为(currentfontsize+4)。。。但到目前为止,我还没有找到任何方法来获得当前的字体大小 有人有办法做到这一点吗?给定一个对象,您可以检查范围.Font.Size在VBA中直接设置书签的字体大小: Dim doc As Document Const MultiSel

我们正在使用VB6和Word.Basic对象创建文档。文本插入到各种书签中。我们的最新要求是增加给定插入的字体大小。我们目前正在通过将字体大小设置为12而不是通常的8来实现这一点,但是从维护的角度来看,我希望能够将其设置为(currentfontsize+4)。。。但到目前为止,我还没有找到任何方法来获得当前的字体大小


有人有办法做到这一点吗?

给定一个对象,您可以检查
范围.Font.Size

在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的对象模型,一个技巧是使用宏记录器。在您的情况下,启动录音机,打开书签对话框,转到书签,然后更改字体大小。默认情况下,录制的操作将保存为Normal.dot文件中的模块。更改书签字体大小的操作将导致录制以下宏:

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

此代码可以作为您自己函数的基础(尽管它看起来与上面的示例略有不同,但效果相同)

我知道怎么设置,我在找尺寸。但根据另一个答案。。。我可以将您的修改为:doc.Bookmarks(“myBookmark”).Range.Font.Size=doc.Bookmarks(“myBookmark”).Range.Font.Size+4吗?(或者它是只读的?)是的,这也可以,但前提是当前书签没有使用不同的字体大小。如果有,您将从
range.Font.Size
中获得一个未定义的值(9999999)。太棒了,我真的很感激。