2

我希望能够创建一个页面元素,我可以提供文本并将其自身形成首选布局。例如:

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

将其作为一个字段,输出应该是一行,前两个字符串具有一定的大小和字体,居中,另一行,然后是第三个字符串,字体,大小和居中。

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

编辑

好的,如果我将所需的信息放入关键字中,作为文档属性的一部分,并带有某种唯一的分隔符,那么就会获取该信息,并且该信息对于每个文档都是唯一的。下一个在要显示内容的地方放置一个书签。然后创建一个AutoOpen指向该书签的宏,从关键字中提取相关内容,并将文本适当地形成为书签的.Selection.

这可行吗?

4

2 回答 2

2

对于编码解决方案,您肯定在正确的轨道上。但是,有一种更简单的方法,无需代码 - 这是 Word 2007 中的内容控件构建的场景类型,并且使用字段/属性,您可以绑定到内容控件 (CC)。这些 CC 可以保持样式(如居中、粗体等)。不需要 VBA。

最简单的做法是选择 3 个您始终希望的内置文档属性。例如,“标题”可以是您的第一个字符串,“主题”是您的第二个字符串,“关键字”是您的第三个字符串。然后,只需转到“插入”功能区、“快速部件”、“文档属性”,然后按您喜欢的方式插入、放置和格式化。然后转到 Word 的开始按钮(orb thingy),然后在Prepare下选择Properties在这里,您可以在标题框中输入例如“商业研究简介”,然后以某种方式取消选择它(例如单击另一个框)。标题的内容控件将自动填写您的文本。

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

于 2010-01-31T21:01:07.340 回答
1

嗯,是的,结果证明是可行的。

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

好吧,我有一些事情要做,但至少它的胆量在那里。

于 2010-01-31T09:38:23.213 回答