程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB綜合教程 >> 在VisualBasic6.0中創建Word文檔

在VisualBasic6.0中創建Word文檔

編輯:VB綜合教程
摘要:分析了Word對象模型的結構,特別是Document對象及其使用方法,提出了在VisualBasic中創建Word格式文檔的方法,並給出了該方法的應用實例。
  
  關鍵詞:VisualBasic,Word對象模型,文檔
  
  引言
  
  Word文檔是實際工作學習中最為常用的文檔格式之一。
  
  隨著社會信息化程度的提高,一些傳統的由人工完成工作逐漸轉向由計算機來處理。計算機自動組卷系統便是一個典型的例子。為了追求更高的效率,一些計算機自動組卷系統的單位用戶要求由軟件輸出Word格式的試卷不需排版直接供印刷使用。
  
  由於MicrosoftOffice套件的普及,Word文檔、電子表格文檔、電子幻燈片等文檔日漸常用。雖然在Office中各個程序的文檔可以方便地轉換,但是這種轉換是以失去文檔原本的格式為代價的。例如,在自動組卷系統中,存儲在Access數據庫中的試卷可以通過Access提供的導出功能產生Word文檔,但產生的文檔是無格式的,需花費大量時間重新排版方可符合用戶在試卷格式上的要求。
  
  針對這一問題,本文討論通過研究Word對象模型,提出使用該對象模型創建符合用戶所要求的特定格式的Word文檔的方法。
  
  Word對象模型
  
  1、Word對象模型層次結構
  
  對象是VisualBasic的基石,幾乎在VisualBasic中的每個操作都與修改對象有關。Word的任何元素(如文檔、表格、段落、域、書簽等)都可以用VisualBasic中的對象來代表。
  
  對象代表一個Word的元素,如文檔、段落、書簽或單個的字符。集合也是一個對象,該對象包含其他數個對象,通常這些對象屬於相同的類型,例如,一個集合對象中可包含文檔中的所有書簽對象。通過使用屬性和方法,可以修改單個的對象,也可修改整個的對象集合。
  
  MicrosoftWordVisualBasic提供一套完整的Word對象模型,這是一個以Application為頂層對象的對象層次結構。其結構如圖-1所示。
  
  ->->
  對象由兩種類型的成員構成,一種是屬性,第二種成員是方法。
  
  屬性是對象的一個特性或者該對象行為的一個方面。例如,文檔屬性包含名稱、內容、保存狀態以及是否啟用修訂。要更改一個對象的特征,可以修改其屬性值。要設置一個屬性的值,需在對象的後面緊接一個句點、屬性名稱、一個等號及新的屬性值。下面的示例在"MyDoc.doc"文檔中啟用修訂。
  
  ->Documents("MyDoc.doc").TrackRevisions=True->
  方法是對象可以進行的動作。例如,只要文檔可以打印,Document對象就具有PrintOut方法。方法通常都帶有參數,限定動作將如何進行。下面的示例打印活動文檔的前三頁。
  
  ->ActiveDocument.PrintOutFrom:=1,To:=3->
  在大多數情況下,方法是動作,而屬性是性質。使用方法將導致針對對象的某些事情發生,而使用屬性則會返回對象的信息,或者引起對象的某個性質的改變。
  
  2、Document對象和Documents集合對象
  
  在VisualBasic中,可使用Document對象或Documents集合對象的方法來修改文件。Document對象是本文用來創建Word文檔的主要對象。
  
  Word對象模型中Documents(Document)對象集(或Document)對象的結構如圖-2所示。
  
  ->->
  其中的Paragraphs集合對象與PageSetup對象將是下文的主角。Paragraphs集合對象是由選定內容、范圍或文檔中的Paragraph對象組成的集合。PageSetup對象代表頁面設置描述。PageSetup對象包含了文檔的所有頁面設置屬性(左邊距、下邊距、紙張大小,等等)。
  
  在熟悉了Word對象模型的基礎上,我們可以使用Document對象對Word文檔進行各種操作,例如:
  
  2.1新建一篇文檔
  
  Documents集合包含所有打開的文檔。要新建一篇文檔,可使用Add方法將一個Document對象添至Documents集合。
  
  新建文檔的方法之一是使用Add方法。Add方法將返回Document對象,該對象引用新文檔。在下面的示例中,把Add方法返回的Document對象賦予一個對象變量newDoc。然後設置該Document對象的幾種屬性和方法。通過newDoc對象變量,可以很容易地控制新文檔。
  
  ->SetnewDoc=Documents.Add
  WithnewDoc
  .Content.Font.Name="Arial"
  .SaveAsFileName:="Sample.doc"
  EndWith->
  2.2打開文檔
  
  要打開一篇現有的文檔,可使用Documents集合的Open方法。下面的代碼打開名為MyDocument.doc的文檔(該文檔位於"MyFolder"文件夾中)。
  
  ->Documents.OpenFileName:="C:MyFolderMyDocument.doc"->
  2.3保存一篇現有文檔
  
  要保存一篇文檔,可使用Document對象的Save方法。下面的代碼保存名為Sales.doc的文檔。
  
  ->Documents("Sales.doc").Save->
  如果對Documents集合應用Save方法,可以保存所有打開的文檔。下面的代碼保存所有打開的文檔。
  
  ->Documents.Save->
  2.4保存一篇新文檔
  
  要保存一篇文檔,可使用Document對象的SaveAs方法。下面的代碼將活動文檔保存於當前文件夾,取名為"Temp.doc"。
  
  ->ActiveDocument.SaveAsFileName:="Temp.doc"->
  FileName參數可以只包含文件名,也可包含完整的路徑(例如"C:DocumentsTemporaryFile.doc")。
  
  2.5關閉文檔
  
  要關閉單個文檔,可使用Document對象的Close方法。下面的代碼關閉並保存名為Sales.doc的文檔。
  
  ->Documents("Sales.doc").CloseSaveChanges:=wdSaveChanges->
  可應用Documents集合的Close方法關閉所有的文檔。下面的代碼在不保存修改的情況下關閉所有的文檔。
  
  ->Documents.CloseSaveChanges:=wdDoNotSaveChanges->
  在VisualBasic中創建Word文檔
  
  1、VisualBasic中創建Document對象
  
  所有的工作都從Document對象開始,首先在VisualBasic中創建一個Document對象的實例,然後就可以對該實例進行各種可控制:
  
  ->DimnewDocAsWord.Document
  SetnewDoc=newWord.Document->
  一旦創建了Document對象,就可以設置文檔的缺省格式,通過設置Content子對象的字體、行間距等屬性加以實現:
  
  ->WithnewDoc
  .Content.Font.Name="宋體"
  .Content.Font.Size=12
  .Content.Paragraphs.LineSpacing=15.5
  EndWith->
  由此得到了一個空Word文檔。
  
  2、向Word文檔中添加文本
  
  接下來,向空文檔中添加文本,這將使用Paragraphs集合對象來完成此項工作。InsertAfter方法將文本插入到Selection或Range對象後;InsertBefore方法將文本插入到Selection或Range對象前。以下代碼向文檔結尾處添加一個段落並設置本段落格式:
  
  ->WithnewDoc
   .Content.InsertAfter"示例段落…"
   .Paragraphs(NewDoc.Paragraphs.count).Alignment=wdAlignParagraphCenter
   .Paragraphs(NewDoc.Paragraphs.count).Range.Font.Bold=True
   .Paragraphs(NewDoc.Paragraphs.count).Range.Font.Size=28
  EndWith->
  可用Paragraphs(index)返回一個Paragraph對象,其中index為索引號;count屬性值表示該文檔主文字部分中的Paragraph對象數。NewDoc.Paragraphs.count恰好為當前正在添加的文本段落的索引號。
  
  如果需要插入表格,可以使用Table對象。Add方法可以在指定范圍內新增一表格。下例在活動文檔的起始處添加一3x4的表格。
  
  ->SetmyRange=ActiveDocument.Range(Start:=0,End:=0)
  ActiveDocument.Tables.AddRange:=myRange,NumRows:=3,NumColumns:=4->
  以可以使用制表字符得到表格。以下代碼在文檔尾部插入一個1x4的表格。
  
  ->NewDoc.Content.InsertAfter"得分"&vbTab&""&vbTab&"評卷人"&vbTab&""&vbCr->
  創建的表格如圖-3所示:
  
  ->->
  3、頁面設置
  
  當所有段落都添加到文檔以後,可以使用PageSetup對象進行頁面設置,這需要通過設置PageSetup對象的各種屬性來完成。
  
  3.1設置分欄和欄間距:
  
  ->newDoc.PageSetup.TextColumns.SetCountNumColumns:=2
  newDoc.PageSetup.TextColumns.Spacing=CentimetersToPoints(2)->
  3.2設置頁邊距:
  
  ->WithnewDoc.PageSetup
   .TopMargin=CentimetersToPoints(4.5)
   .BottomMargin=CentimetersToPoints(1.5)
   .LeftMargin=CentimetersToPoints(0.8)
   .RightMargin=CentimetersToPoints(2)
  EndWith->
  3.3設置紙張大小:
  
  ->WithnewDoc.PageSetup
   .PageHeight=CentimetersToPoints(28.1)
   .PageWidth=CentimetersToPoints(38.9)
  EndWith->
  其他的設置項目不再詳述。
  
  4、輸出文檔
  
  對創建完畢的文檔,我們可以選自保存為磁盤文件或直接打印輸出:
  
  ->newDoc.SaveAsFileName:="Sample.doc"
  newDoc.PrintOut->
  應用實例
  
  以上方法在筆者為某市市委組織部開發的計算機自動組卷系統中加以應用,該系統流程如圖-4所示。
  
  ->->
  該系統產生的試卷要求直接用於考核和選拔基層干部的考試中,首先由出題者輸入試卷參數,即組卷規則,然後由軟件自動組卷並輸出Word格式的試卷。筆者應用上述方法開發的軟件系統完全滿足了用戶需求。系統現已投入運行,極大地提高了工作效率,獲得了用戶的好評。
  
  結束語
  
  本文提出的在VisualBasic中創建Word文檔的方法基於對象模型,實用性強,也可以用於其它支持ActiveX的開發平台中。->

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved