下面的代码在WORD中判断字符或段落的边框底纹为何加到VB6中失效?
下面的VBA代码在WORD中判断字符或段落的边框底纹经测试无论是什么情况都对,但奇怪地是把它加到VB6中,不论源文档中有无字符或段落的边框底纹,它都会返回 "文档中有字符边框 "的消息。我将处理字符的几句删除(保留处理段落的部分),返回的结果就是对的。这是为什么?怎样保证它在VB6中返回的结果也正确?
在VB6中已引用了:
Microsoft Office 11.0 Object Library
Microsoft Word 11.0 Object Library
Sub Test5()
Dim myFont As Font, myParFormat As ParagraphFormat
'仅字符
Set myFont = ActiveDocument.Content.Font
'判断是否有字符边框
If myFont.Borders.OutsideLineStyle <> wdTextureNone Then
MsgBox "文档中有字符边框 "
'判断是否有字符底纹
ElseIf myFont.Shading.Texture <> wdTextureNone Then
MsgBox "文档中有字符底纹 "
End If
'段落格式
Set myParFormat = ActiveDocument.Content.ParagraphFormat
'判断是否有段落边框
If myParFormat.Borders.OutsideLineStyle > 0 Then
MsgBox "文档中有段落边框 "
'判断是否有段落底纹
ElseIf myParFormat.Shading.Texture <> wdTextureNone Then
MsgBox "文档中有段落底纹 "
End If
End Sub
[解决办法]
要正确理解如何在VB中引用Word、对象或者常数的限定。
请在VB6的工程/引用中,加入对于MS WORD的引用.
Dim wdApp As New Word.Application
Private Sub Command1_Click()
Dim aDoc As Word.Document '声明Document对象
...
将其中一句改为:
Set myFont = wdApp.ActiveDocument.Content.Font
再试试.