【发布时间】:2013-04-07 11:01:33
【问题描述】:
我是编程新手,但我正在尝试将现有脚本改编为 MS Word 2010/2013 插件,以便为打开文档中的每个拉丁词添加正确的重音。
脚本“DoAccentuate”为我将其作为字符串发送的任何非重音拉丁词返回一个重音词。我只需要帮助更好地循环遍历所有单词,然后在到达最后一个单词时停止循环。我目前的方法有点傻...我在文档末尾插入一个无意义的单词,然后循环直到它被选中并重音。
也许有更好或更有效的方法来处理整个事情。
Public Sub Button5_Click(sender As Object, e As EventArgs) Handles Button5.Click
Dim document As Word.Document
document = Globals.ThisAddIn.Application.ActiveDocument
Dim mySelection = document.Application.Selection
'make sure cursor is at start of document
document.Application.Selection.HomeKey(Unit:=Microsoft.Office.Interop.Word.WdUnits.wdStory)
'insert fake word at end to stop the loop
Dim range As Word.Range
range = document.Range()
range.InsertAfter(" documentendatoris")
Do
'use MS Word's wildcard to select the first individual word as trimmed string
mySelection.Find.Text = "<*>"
mySelection.Find.MatchWildcards = True
mySelection.Find.Execute()
'replace the selected word that has been found with its accented counterpart
mySelection.Text = Accentuate.Accentuate.DoAccentuate(mySelection.Text)
Loop Until mySelection.Text = "documentendatóris"
End Sub
【问题讨论】:
-
这是否需要支持文档中的所有故事范围?目前这不适用于页脚、脚注和尾注;它只适用于正文故事。
-
@jJack,它只需要在正文中工作。谢谢!
标签: vb.net ms-word office-interop