我有一個帶有變量的Microsoft-Word文檔。 這些是佔位符(例如名稱,名字,日期)。在MS-Word Document中填充變量並在VB中打印
我的VB程序應該將這些變量填充到文檔中(例如將日期放入日期變量,名稱放入名稱變量等等),然後打印頁面。
有沒有辦法做到這一點?如果是的話,我必須查找哪些關鍵字才能找到正確的命令?
感謝您的幫助!
我有一個帶有變量的Microsoft-Word文檔。 這些是佔位符(例如名稱,名字,日期)。在MS-Word Document中填充變量並在VB中打印
我的VB程序應該將這些變量填充到文檔中(例如將日期放入日期變量,名稱放入名稱變量等等),然後打印頁面。
有沒有辦法做到這一點?如果是的話,我必須查找哪些關鍵字才能找到正確的命令?
感謝您的幫助!
除了莫特提到的可能性,Word還提供
(1)文件變量。這些是Word文檔內的字符串存儲,不可見或不可由用戶編輯,因此對於應該保留在文檔中的信息很有用。通過插入引用變量名稱的DocVariable字段,文檔變量的內容可以顯示在文檔表面上。在對象模型:
ActiveDocument.Variables("name").Value = "text"
基本字段代碼:{DOCVARIABLE 「姓名」}
(2)自定義文檔屬性。這些與文檔變量類似,但可以由用戶在「文檔屬性」對話框中查看和編輯。內容可以使用DocProperty字段顯示在文檔表面上。他們的對象模型中的使用是有點絡合劑比文檔變量,因爲它們必須明確創建:
Dim prop As Office.DocumentProperty
Set prop = ActiveDocument.CustomDocumentProperties.Add(_
Name:="test", LinkToContent:=False, _
Type:=Office.MsoDocProperties.msoPropertyTypeString, _
value:="prop value")
Debug.Print prop.value
其他方面的差異:文檔變量必須有一個值,它不能是空字符串;自定義文檔屬性可以是一個空字符串。您不能「添加」已存在的文檔屬性。可以存儲在文檔中的字符數限制爲255.
(3)內容控件。你可以將它們看作文檔表面上的「文本框」。它們也可以用於表格保護。如果您願意,可以將它們鏈接到存儲在文檔中的自定義XML部件中的節點。內容控制可以通過其在文檔中的位置或其Title屬性或其Tag屬性來解決。多個內容控件可以具有相同的標題和/或標記屬性。基於這個原因,根據標題或標記拾取內容控件的方法返回一個數組。該代碼以解決內容控制:
Dim cc as Word.ContentControl, ccs as Word.ContentControls
Set ccs = ActiveDocument.SelectContentControlsByTitles("name")
Set cc = ccs(1)
哪五種可能性使用取決於所有參與該項目的情況,包括用戶是否應建立文件與您的代碼運行,數據是否需要稍後從文檔中提取等。
一個可能的選擇是在Word文檔中使用書籤。 然後你通過文檔解析,並做值替換這樣的:
doc.Bookmarks.Item(bookmark_name).Range.Text = newValue
另外,您可以搜索和範圍替換這樣的:
Dim doc As Word.Document = Program.LetterInstance.LetterForm.Document
Dim range As Word.Range
range = doc.Content
range.Find.Execute(FindText:=OldText, ReplaceWith:=NewText, Replace:=Word.WdReplace.wdReplaceAll)
我還沒有測試它,但我很確定(1)正是我一直在尋找的!謝謝! – Luke
我還有一個問題〜我終於在我需要這個任務,但我無法找到正確的導入(1)。你能幫我解決嗎? :-) – Luke
導入?就像在VB.NET「頁面」頂部的Imports語句中一樣?導入Word = Microsoft.Office.Interop.Word –