Word VSTO:将字符串另存为自动图文集值
Word VSTO: Save a string as an AutoText value
我正在使用 vb.net 将具有一些较旧 WordBasic 元素的 Word vba 项目移植到 VSTO 项目中。我需要做的任务之一是以编程方式将字符串或表单上文本框的内容保存到 Word 模板中的自动图文集值。
在旧项目中,这很容易。该命令看起来像这样:
WordBasic.SetAutoText "AT Name", strSomeValue, 0
正在 vb.net 尝试此操作:
'declarations
Public appWord As Word.Application
Public tplMyTpl As Word.Template
Public doc As Word.Document
'Get the template
appWord = Me.Application
doc = appWord.ActiveDocument
tplMyTpl = doc.AttachedTemplate
'try saving autotext
tplMyTpl.AutoTextEntries.Add("AT Name", strSomeValue)
不起作用,因为 AutoTextEntries.Add 方法只接受作为 Word.Range 的值。上面的代码在运行时会抛出类型转换错误。它必须看起来像:
dim sel as Word.Selection = appWord.Selection
tplMyTpl.AutoTextEntries.Add("AT Name", sel.Range)
问题是我不想将字符串插入到我的文档中,select 它作为一个范围,保存自动图文集条目然后删除文本。这似乎是非常草率的编码。
您仍然可以在 VSTO 中使用 WordBasic
。只需通过您的 Word.Application
对象引用调用它,例如:
appWord.WordBasic.SetAutoText("AT Name", strSomeValue, 0)
已在 Word 2013 中测试和工作。
我正在使用 vb.net 将具有一些较旧 WordBasic 元素的 Word vba 项目移植到 VSTO 项目中。我需要做的任务之一是以编程方式将字符串或表单上文本框的内容保存到 Word 模板中的自动图文集值。
在旧项目中,这很容易。该命令看起来像这样:
WordBasic.SetAutoText "AT Name", strSomeValue, 0
正在 vb.net 尝试此操作:
'declarations
Public appWord As Word.Application
Public tplMyTpl As Word.Template
Public doc As Word.Document
'Get the template
appWord = Me.Application
doc = appWord.ActiveDocument
tplMyTpl = doc.AttachedTemplate
'try saving autotext
tplMyTpl.AutoTextEntries.Add("AT Name", strSomeValue)
不起作用,因为 AutoTextEntries.Add 方法只接受作为 Word.Range 的值。上面的代码在运行时会抛出类型转换错误。它必须看起来像:
dim sel as Word.Selection = appWord.Selection
tplMyTpl.AutoTextEntries.Add("AT Name", sel.Range)
问题是我不想将字符串插入到我的文档中,select 它作为一个范围,保存自动图文集条目然后删除文本。这似乎是非常草率的编码。
您仍然可以在 VSTO 中使用 WordBasic
。只需通过您的 Word.Application
对象引用调用它,例如:
appWord.WordBasic.SetAutoText("AT Name", strSomeValue, 0)
已在 Word 2013 中测试和工作。