首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Word 2013屏幕拆分问题

Word 2013屏幕拆分问题
EN

Stack Overflow用户
提问于 2014-06-26 13:03:09
回答 1查看 431关注 0票数 2

在Office2010中,如果记录宏来拆分屏幕,则会得到

代码语言:javascript
运行
复制
ActiveWindow.SplitVertical = 50

但如果我在Office 2013中也这么做,我会得到

代码语言:javascript
运行
复制
ActiveWindow.Panes(3).Activate
ActiveWindow.SplitVertical = 50

我不明白的是窗格号3。当我看起来只有两个窗格时(在屏幕分裂之后),这怎么可能呢?另外,我删除了拆分,然后再次运行宏,它会掉下来,这并不奇怪,因为它试图激活一个在分割屏幕之前不存在的窗格。所以宏的记录并没有给出它应该做的事情。

这对我来说很重要,因为我有一个c# vsto项目,它分割一个屏幕,并在顶部窗格中选择某个文本,在底部窗格中选择其他内容。在Office 2010中,可以根据需要激活pane1或pane2,但对Office 2013不起作用。我已经发现,如果我在需要底部窗格时激活pane3而不是pane2,它会做我想做的事情,但这感觉不可靠,因为我不知道什么是窗格2。有人能解释一下发生了什么,并建议一个可靠的方法来激活我感兴趣的窗格吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-06-27 07:32:07

在Word 2013中,窗格集合包含了其成员中的一些(但不是全部)Word任务窗格。例如,导航窗格可以显示三种类型的信息:标题、页和结果。设置为标题时,此窗格不在窗格集合中计算。设置为“页”时,它将在窗格集合中计数。

更复杂的是,作为窗格集合成员的激活窗格有时会在整个Word会话期间保留其在集合中的索引。因此,如果导航窗格设置为Pages,然后在文档上使用该文档,然后关闭该文档,则在拆分其窗口之后打开的第二个文档仍然可以使其窗格集合索引受到导航窗格与第一个文档的使用的影响。我能够以这种方式再现一个Panes(3),以及屏幕上的导航窗格(设置为页面)。

我还创建了一个Panes(4)索引,并怀疑由于任务窗格的巨大多样性(脚注、词库、拼写和语法等),更高的索引是可能的。

但是,可以使用代码激活所需的文档窗格。窗格集合Next属性将在文档窗格之间导航。此外,当活动窗口被分割时,底部窗格变成活动窗格。此信息允许下面的VBA代码(可以对C#进行调整,以便VSTO外接程序)工作:

代码语言:javascript
运行
复制
Sub SelectCorrectPane()

Dim DocPaneTop As Integer
Dim DocPaneBottom As Integer
Dim PaneCount As Integer

PaneCount = ActiveDocument.ActiveWindow.Panes.Count

'The Next property switches between document panes but
'if the user is clicked into a task pane when the code executes Next
'cycles through the task panes until it gets to the document pane
For i = 1 To PaneCount
    ActiveDocument.ActiveWindow.ActivePane.Next.Activate
Next

ActiveWindow.SplitVertical = 50 'This activates bottom pane
DocPaneBottom = ActiveDocument.ActiveWindow.ActivePane.Index
ActiveDocument.ActiveWindow.ActivePane.Next.Activate 'this activates the top pane
DocPaneTop = ActiveDocument.ActiveWindow.ActivePane.Index

ActiveDocument.ActiveWindow.Panes(DocPaneTop).Activate
'Select text in top pane per OP

ActiveDocument.ActiveWindow.Panes(DocPaneBottom).Activate
'perform other actions in bottom pane per OP

End Sub

最后一个注意事项:由于一些未知的原因,当使用

代码语言:javascript
运行
复制
 With ActiveDocument.ActiveWindow
     'code here
 End With

虽然这可能是特定于我的设置。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24431313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档