在Microsoft Word文档中存储任意元数据

时间:2009-04-17 10:08:21

标签: vba ms-word ms-office word-vba

我需要在Word文档中存储自定义元数据。 “文档属性”限制为255个字节,但我的数据是>> 10K

我们正在使用VBA编写单词扩展名以与我们的应用程序进行交互,并希望将我们的应用程序数据存储在word文档中。我们的想法是,用户只需共享word文档,而无需共享我们应用程序的任何其他数据文件。

有没有人想过如何在Office 2003+文档中有效存储任意元数据?

2 个答案:

答案 0 :(得分:8)

刚刚在VBA编辑器的即时窗口中尝试了这个:

ActiveDocument.Variables.Add "foo", String(10000, ".")

? Len(ActiveDocument.Variables("foo"))
10000

文档变量与文档一起存储。它们似乎达到了65280个Unicode字符,正如我刚刚发现的那样(在Word 2003中测试过; 更新:这个限制在Word 2007和2010中是相同的。)

如果您担心数据接近60k,我建议将其拆分为多个变量,或者在存储之前压缩它。 This post显示了在VBA中执行此操作的一些选项。

答案 1 :(得分:2)

它不符合您的要求,因为它不适用于Word 2003.但是,它仍然可能对您有意义(否则我建议您使用Tomalak建议的文档变量):

在Word 2007(及更高版本)中,您可以将任意XML文档嵌入Word文档中 Custom XML

本文在MSDN上描述了一个示例:How to: Add Custom XML Parts to Documents by Using VSTO Add-Ins