Chapter 20.VBA

Download Report

Transcript Chapter 20.VBA

第20章
VBA
1
What is VBA?

Visual Basic for Application (VBA)



設計一個Excel本身沒有內建的函數或副程式,
開發巨集,或是設計成自動化資訊系統,如會計
資訊系統等等。
語法基礎同 Visual Basic
有些功能被拿掉,Ex: 轉成執行檔、製作ActiveX
元件
2
What is VBA? (cont’d)








Sub 函數或程序名稱( )
Dim x as …..
Dim y as …..
.....
x=…….
y=…….
.....
End Sub
巨集
3
巨集實例

Sub UseFunction()

Dim myRange As Range





Set myRange = Worksheets("Sheet1").Range(“B3:E18")
answer = Application.WorksheetFunction.Min(myRange)

MsgBox answer
End Sub
4
VBA編輯環境

”工具/巨集/Visual Basic編輯器”或按Alt+F11。
5
VBA編輯環境 (cont’d)

選取專案名稱 (Ex: VB Project),按右鍵,設定
此專案的屬性,可設定密碼。
6
Function or Subroutine

執行 ”插入/程序”。
7
執行巨集

“Alt+F8”,開啟巨集交談窗,選取一個巨集名稱
來執行。
8
Function or Subroutine 實例
Public Function sumX(x As Integer) As Integer
Dim i As Integer
Dim temp As Integer
temp = 0
For i = 1 To x
temp = temp + i
Next i
在模組內新增~~~
sumX = temp
End Function
9
Function or Subroutine 實例

選取任一儲存格,按一般工具列上的”插入函數”鈕,在”插入函數”
交談窗中,選取類別為「使用者定義」類別。
10
VBA基本結構

Excel中常見的物件有按鈕、儲存格範圍、工作表等等,
在程式中為了使用方便,將同型態的物件集合在一起,
稱為物件集,其關鍵字為英文的複數型態,如
Workbooks, Worksheets

例如想在 test.xls 的sheet1工作表中的B1儲存格放入數
值8,可以這樣寫:
 Workbooks(“test.xls”).Worksheets(“sheet1”).Range(“B1”).Value=8
Application
Workbook
Worksheet
Range
11
VBA基本結構 (cont’d)
在一般工具列上按瀏覽物件,可看到所有的物件類型。
12
VBA基本結構 (cont’d)

按右鍵,執行快顯功能表中的”說明”。
13
重要物件-Range

Range(arg) 傳回代表單個儲存格或多個儲存格的
Range 物件,其中 arg 為範圍名稱。

Worksheets("Sheet1").Range(“B1").Value
=Worksheets("Sheet1").Range("A6").Value

Worksheets(1).Range(“C3:D4”).ClearContents

常用方法: ClearContents, Merge, UnMerge, Copy,
PasteSpecial
常用屬性: Value, Formula, Count, Row, Column

14
重要物件-Cells



可用 Cells(row, column) 傳回單個儲存格,其中 row 為
列索引,column 為欄索引。
Worksheets(1).Cells(1, 1).Value = 24
ActiveSheet.Cells(2, 1).Formula = "=Sum(B1:B5)“
15
VBA基本結構-事件

活頁簿或工作表上的常用事件如下。

http://support.microsoft.com/kb/291294/zh-tw
16
使用表單

執行”插入/自訂表單”
17
使用表單 (cont’d)

每次開啟此活頁簿檔案時就自動執行此表單

Private Sub Workbook_Open()



Load UserForm1
UserForm1.Show
End Sub
18
References
Excel VBA 功能索引式參考手冊
 http://www.books.com.tw/exep/prod/book
sfile.php?item=0010287112

19