我們使用VB6和Word.Basic對象來創建文檔。文本以各種書籤插入。我們最新的要求要求我們增加給定插頁的字體大小。我們目前正在通過設置字體大小爲12而不是通常在那裏的8來做到這一點,但是從維護的角度來看,我寧願能夠設置它來表示(currentfontsize + 4)...但是到目前爲止,我已經無法找到任何方法來獲取當前的字體大小。如何在書籤中找到當前字體大小?
有沒有人有辦法做到這一點?
我們使用VB6和Word.Basic對象來創建文檔。文本以各種書籤插入。我們最新的要求要求我們增加給定插頁的字體大小。我們目前正在通過設置字體大小爲12而不是通常在那裏的8來做到這一點,但是從維護的角度來看,我寧願能夠設置它來表示(currentfontsize + 4)...但是到目前爲止,我已經無法找到任何方法來獲取當前的字體大小。如何在書籤中找到當前字體大小?
有沒有人有辦法做到這一點?
設置書籤的字體大小,在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? (或者它是隻讀的?) – RiddlerDev 2010-01-07 22:00:57
是的,這也適用,但只有當前書籤不使用不同的字體大小。如果是這樣,你會從'range.Font.Size'中得到一個未定義的值(9999999)。 – 2010-01-07 22:04:26
非常感謝! – RiddlerDev 2010-01-07 22:05:10
給定一個Range
對象,你可以檢查range.Font.Size
。
太棒了,我真的很感激它。 – RiddlerDev 2010-01-07 22:11:56