2013-05-08 30 views
1

我几乎没有VBA的经验,并且试图对Word的默认加载设置进行一些小调整。正确使用VBA for Word 07 Dock TaskPanes?

当用户创建一个文档时,我需要打开样式格式窗格(我得到这个工作正常),但我也需要它停靠在窗口的右侧。我发现代码片段暗示涉及什么,但没有一个可靠的例子。这看起来并不复杂,但我不知道我做错了什么。

这里是我到目前为止有:

Public Sub DisplayStylesMenu() 

    ' Opens the Formatting task pane (Style window) 
     Application.TaskPanes(wdTaskPaneFormatting).Visible = True 

    ' Docks the Formatting pane on the right 
     Application.CommandBars(wdTaskPaneFormatting).Position = msoBarRight 

End Sub 

此代码当Word创建一个新的文件中运行。格式化任务窗格根据需要显示,但位置不起作用。它打破了,我得到'运行时错误9:下标超出范围'。有时候它也会返回'索引超出列表末尾',但是这是间歇性出现的,我不确定是什么原因造成的。

显然,Word 07默认加载停靠在右侧的格式化窗格,但如果用户将其拖出来以便将其浮动到文档上,则下一次会记住此新位置。我需要它每次打开停靠。

回答

1

当您参考CommandBar对象时,您需要使用其索引号的名称。

在你的情况,你需要更改第二行成这样:

Application.CommandBars("Styles").Position = msoBarRight 

这意味着TaskPanes(wdTaskPaneFormatting)CommandBars("Styles")

+0

非常感谢,这个完美的作品!我不知道需要以不同的方式引用命令行,所以您为我节省了大量工作。 – Timmah 2013-05-08 22:57:49