2010-01-07 54 views
1

我们使用VB6和Word.Basic对象来创建文档。文本以各种书签插入。我们最新的要求要求我们增加给定插页的字体大小。我们目前正在通过设置字体大小为12而不是通常在那里的8来做到这一点,但是从维护的角度来看,我宁愿能够设置它来表示(currentfontsize + 4)...但是到目前为止,我已经无法找到任何方法来获取当前的字体大小。如何在书签中找到当前字体大小?

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

+0

太棒了,我真的很感激它。 – RiddlerDev 2010-01-07 22:11:56

回答

2

设置书签的字体大小,在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 

这个代码可以为您自己的功能的基础上(尽管它看起来从上面的示例有点不同,效果会是相同的)。

+0

我知道如何设置它,正在寻找大小。但基于其他答案...我可以修改你的: doc.Bookmarks(“myBookmark”)。Range.Font.Size = doc.Bookmarks(“myBookmark”)。Range.Font.Size + 4? (或者它是只读的?) – RiddlerDev 2010-01-07 22:00:57

+0

是的,这也适用,但只有当前书签不使用不同的字体大小。如果是这样,你会从'range.Font.Size'中得到一个未定义的值(9999999)。 – 2010-01-07 22:04:26

+0

非常感谢! – RiddlerDev 2010-01-07 22:05:10

0

给定一个Range对象,你可以检查range.Font.Size

相关问题