Word.Range.TextVisibleOnScreen属性是否真正具备预期功能?
验证 Word.Range.TextVisibleOnScreen 属性的有效性
不少Word VBA开发者都会对TextVisibleOnScreen属性的实际可靠性打问号,刚好可以通过你提供的这段测试代码来验证它是否能准确反馈指定Range内容的屏幕可见状态:
Private Sub isVisTest() Dim rng As Range: Set rng = oDoc.Bookmarks("_Toc#########").Range '将#########替换为测试文档中有效的标题书签编号 Dim c As Integer ActiveWindow.VerticalPercentScrolled = 0 ActiveWindow.HorizontalPercentScrolled = 0 oDoc.ActiveWindow.ScrollIntoView rng Do oDoc.ActiveWindow.SmallScroll Down:=6 Debug.Print rng.TextVisibleOnScreen c = c + 1 If c > 10 Then Exit Do Loop Until rng.TextVisibleOnScreen = False End Sub
测试逻辑说明:
- 第一步先定位到文档内指定的目录书签对应的Range(记得把代码里的
#########替换成你测试文档中实际有效的书签编号) - 重置窗口的滚动位置到文档起始处,保证每次测试的初始状态一致
- 将目标Range滚动到屏幕可见区域后,逐步向下小幅度滚动窗口
- 每滚动一次就在VBA的立即窗口打印
TextVisibleOnScreen的返回值,循环最多执行10次,或者直到该属性返回False
你运行这段代码后,观察立即窗口的输出即可判断属性是否正常工作:如果返回值能随着Range内容移出屏幕区域,准确从True切换为False,说明该属性的逻辑是有效的;要是出现返回值和实际可见状态不匹配的情况,就意味着这个属性存在可靠性问题。
内容的提问来源于stack exchange,提问作者IronX
相关产品推荐
相关产品推荐

