2010-01-07 31 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

相關問題