VB5.0調用Office97技巧
Visual Basic 5.0具有簡單、易學等特點,深受初學者的歡迎,但也有一些不如人意的地方。例如,不能像Word 97那樣進行拼寫檢查,不能像Excel 97那樣具有很多的函數。如果我們能將Word 97和Exce l97的功能使用在Visual Basic 5.0中,就可以使VB達到錦上添花的目的。
我們知道所有Office 97 應用程序都提供了ActiveX對象,我們可以在Visual Basic 5.0中使用它們。
調用Word 97
要想在VB中調用Word 97,首先要打開VB的“工程”菜單中的“引用”項目,并在該項目對話框中選定“Microsoft Word 8.0 Object Library”就可以了。
下面我們舉例說明調用Word 97中的“拼寫檢查”和“單詞統計”功能。首先新建一個工程并在窗體上放置一個TextBox控件和兩個CommandButton控件,然后添入如下的代碼:
Option Explicit
Dim Doc As New Document
Dim Visi As Boolean
圖1 調用Word 97
′拼寫檢查
Private Sub Command1-Click()
Form1.Caption = “拼寫檢查"
Doc.Range.Text = Text1
′確定范圍
Doc.Application.Visible = True ′將Word 97變為可見
AppActivate Doc.Application.Caption
′激活Word 97
Doc.Range.CheckSpelling
′拼寫檢查
Text1 = Doc.Range.Text
Text1 = Left(Text1, Len(Text1) - 1)
AppActivate Caption
End Sub
′統計單詞數
Private Sub Command2-Click()
Dim Dlg As Word.Dialog
Doc.Range = Text1.Text
Set Dlg = Doc.Application.Dialogs
(wdDialogDocumentStatistics)
Dlg.Execute ′統計單詞和字符
Form1.Caption =“單詞數:" & Str(Dlg.Words) & “詞"
& Str(Dlg.Characters) & “字符" ′顯示統計結果
End Sub
Private Sub Form-Load()
Form1.Caption =“調用Word 97"
Text1.Text =
Command1.Caption = “拼寫檢查"
Command2.Caption = “統計單詞"
′使應用程序可見
Visi = Doc.Application.Visible
End Sub
′關閉應用程序
Private Sub Form-Unload(Cancel As Integer)
If Visi Then ′關閉文件
Doc.Close savechanges:=False
Else
Doc.Application.Quit savechanges:=False ′關閉 Word 97
End If
End Sub
運行中的窗體如圖1所示。
圖2 調用Excel 97
調用Excel 97
使用Excel Sheet對象的技術可以處理可變數量的數據,并將結果最后送到你的Visual Basic 應用程序中。例子如下:
新建一個工程并在新建的窗體上放置兩個TextBox控件和一個CommandButton控件及六個Label控件。建設中的窗體如圖2所示。
程序代碼如下:
Option Explicit
Private Sub Command1-Click()
Dim xObject As Object
′調用Excel 97
Set xObject = CreateObject(“Excel.Sheet")
Set xObject = xObject.Application.ActiveWorkbook.ActiveSheet
xObject.Range(“A1").Value = Text1.Text ′將數值送入Excel 97的A1單元格
xObject.Range(“A2").Value = Text2.Text ′將數值送入Excel 97的A2單元格
xObject.Range(“A3").Formula = “=MAX(A1,A2)" ′將最大值送入A3單元格
xObject.Range(“A4").Formula = “=ATAN(A1/A2)*180/PI()" ′將反正切值送入A4單元格
′顯示計算的結果
Label1.Caption = xObject.Range(“A3").Value
Label2.Caption = xObject.Range(“A4").Value
Set xObject = Nothing
End Sub
Private Sub Form_Load()
Text1.Text = “"
Text2.Text = “"
Label1.Caption = “"
Label2.Caption = “"
End Sub
該程序的作用是:首先在兩個文本框(Text1和Text2)輸入數值并分別將輸入的數值送入Excel 97的“A1”和“A2”單元格中,然后用Excel 97中的“Max()”函數將計算的結果送入“A3” 單元格中;用反正切函數“ATAN()”進行計算并將結果送入“A4” 單元格中,最后輸出。
我們知道所有Office 97 應用程序都提供了ActiveX對象,我們可以在Visual Basic 5.0中使用它們。
調用Word 97
要想在VB中調用Word 97,首先要打開VB的“工程”菜單中的“引用”項目,并在該項目對話框中選定“Microsoft Word 8.0 Object Library”就可以了。
下面我們舉例說明調用Word 97中的“拼寫檢查”和“單詞統計”功能。首先新建一個工程并在窗體上放置一個TextBox控件和兩個CommandButton控件,然后添入如下的代碼:
Option Explicit
Dim Doc As New Document
Dim Visi As Boolean
圖1 調用Word 97
′拼寫檢查
Private Sub Command1-Click()
Form1.Caption = “拼寫檢查"
Doc.Range.Text = Text1
′確定范圍
Doc.Application.Visible = True ′將Word 97變為可見
AppActivate Doc.Application.Caption
′激活Word 97
Doc.Range.CheckSpelling
′拼寫檢查
Text1 = Doc.Range.Text
Text1 = Left(Text1, Len(Text1) - 1)
AppActivate Caption
End Sub
′統計單詞數
Private Sub Command2-Click()
Dim Dlg As Word.Dialog
Doc.Range = Text1.Text
Set Dlg = Doc.Application.Dialogs
(wdDialogDocumentStatistics)
Dlg.Execute ′統計單詞和字符
Form1.Caption =“單詞數:" & Str(Dlg.Words) & “詞"
& Str(Dlg.Characters) & “字符" ′顯示統計結果
End Sub
Private Sub Form-Load()
Form1.Caption =“調用Word 97"
Text1.Text =
Command1.Caption = “拼寫檢查"
Command2.Caption = “統計單詞"
′使應用程序可見
Visi = Doc.Application.Visible
End Sub
′關閉應用程序
Private Sub Form-Unload(Cancel As Integer)
If Visi Then ′關閉文件
Doc.Close savechanges:=False
Else
Doc.Application.Quit savechanges:=False ′關閉 Word 97
End If
End Sub
運行中的窗體如圖1所示。
圖2 調用Excel 97
調用Excel 97
使用Excel Sheet對象的技術可以處理可變數量的數據,并將結果最后送到你的Visual Basic 應用程序中。例子如下:
新建一個工程并在新建的窗體上放置兩個TextBox控件和一個CommandButton控件及六個Label控件。建設中的窗體如圖2所示。
程序代碼如下:
Option Explicit
Private Sub Command1-Click()
Dim xObject As Object
′調用Excel 97
Set xObject = CreateObject(“Excel.Sheet")
Set xObject = xObject.Application.ActiveWorkbook.ActiveSheet
xObject.Range(“A1").Value = Text1.Text ′將數值送入Excel 97的A1單元格
xObject.Range(“A2").Value = Text2.Text ′將數值送入Excel 97的A2單元格
xObject.Range(“A3").Formula = “=MAX(A1,A2)" ′將最大值送入A3單元格
xObject.Range(“A4").Formula = “=ATAN(A1/A2)*180/PI()" ′將反正切值送入A4單元格
′顯示計算的結果
Label1.Caption = xObject.Range(“A3").Value
Label2.Caption = xObject.Range(“A4").Value
Set xObject = Nothing
End Sub
Private Sub Form_Load()
Text1.Text = “"
Text2.Text = “"
Label1.Caption = “"
Label2.Caption = “"
End Sub
該程序的作用是:首先在兩個文本框(Text1和Text2)輸入數值并分別將輸入的數值送入Excel 97的“A1”和“A2”單元格中,然后用Excel 97中的“Max()”函數將計算的結果送入“A3” 單元格中;用反正切函數“ATAN()”進行計算并將結果送入“A4” 單元格中,最后輸出。