【问题标题】:Using VBA in MS Word 2007 to define page elements?在 MS Word 2007 中使用 VBA 定义页面元素?
【发布时间】:2010-01-29 15:50:25
【问题描述】:

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

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

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

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

编辑

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

这样可行吗?

【问题讨论】:

  • 有趣。两个快速的问题:1)这是最终用户提要,意味着他们需要某种用户表单吗? 2) 您使用的是 Word 2007/Word 2010 或更早版本吗?
  • 1) 唯一的用户是我。 2)Word 2007,虽然我的概念在 2003 年工作(2007 年在工作,2003 年在家里;真痛苦……)

标签: vba ms-word word-field


【解决方案1】:

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

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

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

【讨论】:

    【解决方案2】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-04-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-08-11
      • 1970-01-01
      • 1970-01-01
      • 2021-12-30
      • 1970-01-01
      相关资源
      最近更新 更多