第20章、通過VBA程式操縱Excel伺服器

VBAVisual Basic for Applicaton的縮寫,它是一種通用的自動化語言,在Excel中,可以通過編寫VBA程式,擴展Excel的功能。

本章目的是講解如何通過VBA程式調用Excel伺服器提供的功能。而不在於對VBA編程方法本身的介紹。本章的讀者對象是掌握VBA編程的用戶。若您對VBA編程不瞭解,可略過本章內容,不影響其他章節的學習。

20.1 VBA編程概述

20.1.1 VBA編程環境

Visual Basic工具欄

Excel工具欄的任意一處點擊滑鼠右鍵,從彈出功能表中選擇“Visual Basic”,出現Visual Basic工具欄,如下圖:

201 Visual Basic工具欄

VBA編輯器

點擊Visual Basic工具欄上的按鈕,可進入Visual Basic編輯器,如圖:

202 Visual Basic編輯器

還有一種進入VBA編輯器的方法:點擊功能表“工具ààVisual Basic編輯器”

通過幫助學習VBA編程

VBA編輯器中點擊“幫助”功能表,可看到打開Visual Basic聯機幫助,您可以系統、完整地學習VBA編程的有關內容。

利用按鈕和表單等控制項

點擊Visual Basic工具欄上的按鈕,彈出控制項工具箱,其中列示各種文本框、核取方塊、按鈕等各種控制項,若想在工作表上添加一個控制項,可先在控制項工具箱中單擊此控制項,然後在工作表上單擊,該控制項會出現在相應位置,您可以進一步修改它的屬性或添加事件處理程式。

203 控制項工具欄

20.1.2 Excel物件模型

從編程的角度來看,Excel的各個組成部分都稱為物件,一個工作簿是一個Workbook物件,其中的每個工作表是Worksheet物件,一個單格是range物件,等等。每種物件都有一定的“屬性”。比如說,Range物件有一個value屬性,代表單格中的內容,這樣,當我們想得到A4單格的值時,就可以寫這樣一行代碼:

x=range(“A4”).value

物件還有一定的“事件”和“方法”,比如說,workbook物件有一個beforePrint事件,當用戶列印工作簿檔時發生,這樣,如果我們希望在列印前提醒用戶檢查印表機,就可以寫下面的這段代碼。

Private Sub Workbook_BeforePrint(Cancel As Boolean)

    MsgBox "請檢查印表機,然後按確定。"

End Sub

下表列舉了Excel的常用物件及其屬性和方法

對象名

含義

屬性/方法

 

屬性/方法含義

Workbook

工作簿

Worksheets

屬性

屬性,所包含的工作表集合

Worksheets

工作表集合

Count

屬性

集合中包含的工作表數

Worksheet

工作表

Name

屬性

工作表名稱

 

 

PrintOut

方法

列印

 

 

PrintPreview

方法

列印預覽

Range

單元區域()

Address

屬性

區域位址

 

 

Row

屬性

左上角行號

 

 

Column

屬性

左上角列號

 

 

Rows

屬性

包含的所有行

 

 

Columns

屬性

包含的所有列

 

 

Value

屬性

 

 

Formula

屬性

公式內容

 

 

Select

方法

選中區域

 

打開Excel的聯機幫助,在目錄樹中展開“編程資訊”,可看到Excel的物件模型,如下圖所示。從中您可以詳細瞭解每一種物件及其屬性和方法的含義、用法。

204 Excel物件模型

20.1.3 事件驅動的編程

如前所述,Excel中的工作簿、工作表、單元區域、單格、工具欄等都是物件,每類物件都有自己的一套屬性、方法和事件。“事件”在用戶操作後發生,比如“保存”是一個事件,“打開”某個工作簿是一個事件,在某單格中“輸入”內容是一個事件,點擊一個按鈕還是一個事件。如果我們希望在完成某項操作的時侯執行某段程式,就要把這段程式寫在該操作對應的事件處理程式中。

常用的事件有

對象

操作

事件處理程式

工作簿

打開

Workbook_Open

 

關閉

Workbook_BeforeClose

 

保存

Workbook_BeforeSave

 

列印

Workbook_BeforePrint

工作表

雙擊

Worksheet_BeforeDoubleClick

 

右擊

Worksheet_BeforeRightClick

 

選中區域/單格

Worksheet_SelectionChange

 

改變單格內容

Worksheet_Change

 

啟動

Worksheet_Activate

 

Excel伺服器學習和下載

http://www.qinzhe.com

http://www1.qinzhe.com

http://www3.qinzhe.com