代码之家  ›  专栏  ›  技术社区  ›  bugmagnet

在MS Word 2007中使用VBA定义页面元素?

  •  2
  • bugmagnet  · 技术社区  · 15 年前

    我想能够创建一个页面元素,我可以提供文本,它将形成自己的首选布局。例如:

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

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

    我知道这有点像tex,可能超出了vba的范围,但是如果有人知道这是怎么可能的,请告诉我!

    编辑 :

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

    这可行吗?

    2 回复  |  直到 15 年前
        1
  •  2
  •   Todd Main    15 年前

    对于一个编码解决方案,您肯定是走上了正确的道路。但是,有一种更简单的方法没有代码——这是为Word 2007中的内容控件构建的场景类型,通过字段/属性,可以绑定到内容控件(CC)。这些CC可以保存样式(如居中、粗体等)。不需要VBA。

    最简单的方法是选择3个您一直希望的内置文档属性。例如,“title”可以是第一个字符串,“subject”可以是第二个字符串,“keywords”可以是第三个字符串。那么,就去 插入 丝带, 快速零件 ,请 文档属性 插入、放置和格式化您喜欢的内容。然后转到Word的“开始”按钮(ORB Thingy),然后在下面 准备 选择 性质 . 例如,您可以在此处键入“ 商业研究导论 “,进入 书名 框,然后以某种方式取消选择它(就像在另一个框中单击)。的内容控件 书名 将自动用您的文本填充。

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

        2
  •  1
  •   bugmagnet    15 年前

    是的,事实证明这是可行的。

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

    好吧,我有一些填写工作要做,但至少它的内脏在那里。

    推荐文章