2010-01-29 65 views
2

我希望能够创建一个页面元素,我可以提供文本,它将自己形成首选布局。例如:在MS Word 2007中使用VBA来定义页面元素?

{MACRO DocumentIntro("Introduction to Business Studies", "FP015", "Teachers' Guide")} 

与作为场,输出应该是一条线,所述第一两个字符串一定大小和字体,居中,另一行,然后fonted第三串,大小,居中。

我知道这是类似TeX的,可能超出了VBA的范围,但如果有人知道它有可能如何,请告诉我!

编辑

好吧,如果我把所需信息传递到关键字,作为文档属性的一部分,具有某种独特的分离,那么获取该信息,而且信息将是独一无二的到每个文件。接下来将书签放在要显示的东西上。然后,创建一个AutoOpen宏,该宏指向该书签,将关联关系从关键字中拉出,然后将文本适当地形成书签的.Selection

这可行吗?

+0

有趣。两个简单的问题:1)这是最终用户提要吗,这意味着他们需要某种用户形式? 2)您是否使用Word 2007/Word 2010或更早版本? – 2010-01-30 17:14:52

+0

1)唯一的用户就是我。 2)Word 2007,尽管我已经有了工作的概念2003(2007年在家工作,2003年在家;多么痛苦......) – bugmagnet 2010-01-31 09:28:05

回答

2

对于编码解决方案,您当然在这里找到了正确的方向。但是,没有代码的方式更简单 - 这是Word 2007中Content Control的构建类型以及Fields/Properties,您可以绑定到内容控件(CC)。这些CC可以保存样式(如居中,粗体等)。不需要VBA。

要做的最简单的事情就是选择3个内置文档属性,您将始终需要这些属性。例如,“标题”可能是您的第一个字符串,“主题”是您的第二个字符串,“标题”可能是您的第三个字符串。然后,只需进入插入功能区,快速部件,文档属性并插入,放置和格式化你喜欢的方式。然后转到Word的开始按钮(orb thingy),然后在准备选择属性。在这里你可以输入,例如“商业研究概论”,进入标题框,然后以某种方式取消选择它(例如在另一个框中单击)。内容控制标题将自动填入您的文字。

如果您想将其用于多个文件,只需将该文件创建为.dotx(在CC插入/放置/格式化之后以及在更新文档属性文本之前)。然后每次你所要做的就是用每个新文件设置这三个属性。

1

嗯,是的,它确实是可行的。

Sub autoopen() 
    Dim sKeywords As String 
    sKeywords = ActiveDocument.BuiltInDocumentProperties(4) 
    ActiveDocument.Bookmarks("foo").Select 
    Selection.Text = sKeywords 
End Sub 

好吧,我有些填写的事,但至少它的胆量都没有。