有没有办法通过VBA或其他技术在Word中执行“单一来源文档”。我的公司创建培训并希望拥有一个“主文档”,其中包含培训中的所有内容,然后从中创建交付模式和材料。例如,单个主课程可以成为输出查询
因此,在上述所有三种情况下,完全相同的内容可能会出现在1,2或三种交付方式中。例如,在第二个中,可能只存在两个不存在于其他模态中的东西。
我的猜测是,这将在VBA中完成,但我不确定如何开始。
答案 0 :(得分:3)
single source publishing(SSP)有多种选择,它取决于您拥有的内容以及您在新技术方面可以采取的措施。对于SSP而言,Word并不像其他一些工具那样强大,但近年来它已成为viable solution。
仅限VBA :
如果您仅使用VBA,则必须对Word文档进行标记,并创建模式以搜索并构建其他文档。例如,您可以拥有一个名为%%%LESSON%%%
的令牌(您可以通过该令牌搜索%%%*%%%
以了解您已经上过课程),然后在您可能拥有的文本中%%PPP/Class=True,PPT/Online=True,WRD/Student=False%%
{{1}} 1}}也可以搜索并抓取您正在寻找的部分。因此,如果您使用上述令牌创建学生手册,则不会显示该部分。
就我个人而言,我不是这种方法的忠实粉丝,因为它很快就变得非常不合适。但它适用于任何Word和PowerPoint版本,不需要学习很多新技能或其他组件。
XSL转换 (Word 2003):
如果您的主要客户端是Word 2003,则可以使用XSL Transforms。这里有很多文章,如:Applying an XSLT Transform。这是非常酷的技术,从2003版本开始制作Word,在SSP领域有点竞争对手。看一下这篇文章:Creating and Applying an XML Resume Template in Microsoft Office Word 2003。
虽然这种方法肯定更强大,但如果您不熟悉XML / XSL / XPath,则会出现陡峭的学习曲线。其次,生成PowerPoint幻灯片并不容易 - (您可能需要转换为PowerPoint 2003 ML)。
内容控制&amp; Open XML (Word和PowerPoint 2007 <)> :
通过Content Controls和Open XML的组合,您可以根据SSP定义获得您正在寻找的内容。虽然有一个巨大的学习曲线,你将不得不采用一些外部工具(如Visual Studio,可能是Open XML SDK等)来获得你想要的东西。
就个人而言,这可能是我采取的路线,但同样,从零到好的方式都很陡峭。