程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> Visual Basic語言 >> VB6 >> 怎樣在VB中控制WORD

怎樣在VB中控制WORD

編輯:VB6

使用VB編程時,有時需要調用Microsoft Word對文字進行編輯、排版及輸出。為實現這種調用,可以使用Shell函數、OLE自動化、在包容器中嵌入Word對象等方法。經過試用和比較,總結出了這幾種方法的各自特點。

1 使用Shell函數直接調用

語法:Shell (pathname[,windowstyle]).Pathname是指要執行的程序的名字和任何必須的參數或命令行開關,可以包括目錄和驅動器名;Windowstyle是執行程序的窗口風格的數字。

使用Shell調用Word比較簡單,編程量小,但必須明確指定Word所在路徑,這不利於移植,而且,不能對Word進行控制,不利於程序和Word之間的數據交換。

2 使用OLE自動化控制Microsoft Word

2.1 使用方法

(1)Word為OLE自動化提供一種稱為“Basic”的對象,要在VB中控制Word ,首先要定義一個引用Word中“Basic”對象的對象變量:Dim Wordobj as Object

(2)將Word 中的“Basic”對象賦給該對象:Set Wordobj=CreateObject("Word.Basic")

(3)可以使用大多數WordBasic語句和函數控制Word或Word文檔,使用方法和在Word宏中使用WordBasic指令的方法基本相同。

(4)關閉Word:Set Wordobj =Nothing。

注意:“Basic”對象不支持關閉它自己的一個方法。即若在OLE自動化中關閉了Word,則對象被置為Nothing,便不能再對對象進行操作,程序出錯。

2.2 VB指令與WordBasic指令的差異

(1)有一些語句和函數不能使用,包括:控制結構,如While…Wend和If…Then…Else;聲明語句,如Dim;定制對話框相關的語句:FileExit語句;要求數組變量作為參數的語句或函數。

(2)也有一些指令使用方法不同。①返回字符串以一個美元符($)結束的WordBasic函數的關鍵字必須括在方括號中。例如,在WordBasic宏中的GetBookmark$()語句:mark$=GetBookmark$("Address"),若用VB調用,必須這樣寫mark$=Wordobj.[Ge-tBookmark$]("Address")。②選擇一個命令按鈕用“True”,不選擇用“False”

2.3 對OLE自動化的說明

Word可以為OLE自動化給另一個應用提供對象,但是它不能使用OLE自動化訪問其它應用中的對象。例如:VB和Excel可以使用OLE自動化訪問Word,但是Word不能使用OLE自動化訪問它們。

3 在包容器中嵌入Word對象

在VB中,要訪問在包容器中嵌入的Word對象,首先要在項目中插入對象。做法如下:在窗體中插入OLE控件,對象類型選擇“MicrosoftWord圖片”或“Microsoft Word文檔”,再按“確定”。

然後用Object屬性訪問文檔或圖片,並使用WordBasic語句和函數作用於它。嵌入的對象必須在可被訪問之前被激活,可以使用Action屬性激活OLE控件。例如,使用下面指令訪問一個嵌入在稱為OLE1的OLE控件中的文檔:

Dim Wordobj as Object
OLE1.Action =7
Set Wordobj =OLE1.Object.Application. WordBasic
    

其他方面,使用方法同OLE自動化。使用在包容器中嵌入的Word對象,Word顯示的窗口大小、位置與OLE控件定義的大小、位置相同,而且工具欄顯示位置與Word脫離。這一點與OLE自動化相比,是個不足。

總之,要想在Microsoft Visual Basic中控制Microsoft Word,最好使用OLE自動化,通過使用WordBasic指令對Word進行全面控制,而且,用戶使用起來與使用Microsoft Word一樣,非常方便。

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