• 沒有找到結果。

認識 VBA

在文檔中 課程: (頁 3-11)

VBA 簡介

VBA 為 Visual Basic For Application 的簡稱,在 Microsoft Office 中包括 Excel、Word、PowerPoint、Access、Visio 均提供 VBA 程式的功能。

Response = MsgBox("Do you want to continue ?", vbYesNo + vbCritical + vbDefaultButton2, "MsgBox Demonstration",

"DEMO.HLP", Ctxt = 1000)

如果程式列包含很長的列,比較好的方法是加一空白字元和底 線符號在該行結束的地方 ,並在下一列繼續此一列敘述。如下所示

Response = MsgBox("Do you want to continue ?", vbYesNo + vbCritical + _vbDefaultButton2, "MsgBox Demonstration",

"DEMO.HLP", Ctxt = 1000)

連續行的最末列的最後面不需要加上底線符號,而且底線符號 之後也不可以再加上任何文字或數字,註解也不可以。

註解

註解列可讓程式易被看懂,又如果要讓程式中的某一列不執 行,只要將這一列標示為註解即可。VBA 中的註解列符號為單引號 ( ' ),若是一整列都要作為註解,也可在這列以 REM 敘述開頭。

REM 註解列示範

‘This is a remark demo

MyStr1 = "Hello" : Rem 將註解加在陳述式之後,用冒號隔開。

MyStr2 = "Goodbye" ' 此亦為註解,且不需要冒號。

常數與變數

常數在程式中只包含固定的數值,您不能在程式進行中更動 他,常數以關鍵字 Const 始,例如下一列將 beta 定義為常數,其值 為 0.85:

Const beta=0.85

VBA 中已有預先定義了某些常數,例如在 MsgBox 函數中 vbYesNo 代表常數值 4。詳細的常數定義可在 VBA 的編輯器中取得說明。

變數是指到程式可以儲存值的記憶體位置的代表名稱。變數與 常數不同的是變數可在程式執行期間改變其值。在 VBA 中變數可有不 同的內容型態,例如:Byte、Boolean、Integer、Long、Currency、

Decimal、Single、Double、Date、String、Object、Variant ,其 中預設的變數型態是 Variant。

以下三列是變數的使用範例:

price=45 ‘數值(integer)變數

Item=”水果” ‘文字(string)變數

Set xlApp = CreateObject("excel.application") ‘物件(object)變數

Option Explicit敘述

這一敘述通知 VBA 編譯器找出未宣告即使用的數數。

在預設的情況下 VBA 允許變數不經宣告即可使用,但這也造成 程 式 除 錯 上 的 某 些 困 難 。 您 也 可 在 程 式 的 第 一 行 使 用 Option Explicit 敘述,可強制程式在使用變數前先需宣告,這樣有避免拼 錯字母造成程式上邏輯錯誤的問題。

Dim敘述

您可以使用 Dim 在程序或函數中明確的定義變數或陣列變數。

若您使用了 Option Explicit 敘述,則您;所使用的變數皆需使用 Dim 先行宣告才可使用。以下三列皆是正確的變數宣告

Dim text ‘宣告了一個變數

Dim price,Value,sum ‘同時宣告兩個以上的變數 Dim Item(100) ‘宣告了 101 個元素的陣列。

VBA 亦可使用陣列,陣列的第一個元素預設為 0,所以上述最後 一列中宣告了 Item(0)至 Item(100)共計 101 個變數。

Public與Private關鍵字

Public 與 Private 關鍵字宣告變數用來限制變數的有效範圍,使 用 Public 陳述式宣告的變數,可以在所有模組裡使用 (除非使用 Option Private Module);變數有效範圍為它們所在的專案裡。

使用 Public 陳述式來宣告變數的資料型態。舉例來說,下列的 陳述式宣告一個變數為 Integer:

Public NumberOfEmployees As Integer

您也可用 Public 陳述式來宣告變數的物件型態。下列的陳述式 宣告一個變數為工作表的新執行個體。

Public X As New Worksheet

Public 陳述式無法在物件類別 模組裏宣告固定長度的字串變 數。

Private 用以宣告變數只適用於宣告它們的模組中。Private 陳 述式也可以用來宣告變數的資料型態。舉例來說,下列的陳述式宣告 變數為 Integer:

Private NumberOfEmployees As Integer

您也可使用 Private 陳述式加上空白括號來宣告動態陣列。宣告 之後,在程序裏使用 ReDim 陳述式來定義陣列的維數和元素。變數 的大小已由 Private、Public 或 Dim 陳述式所明確指定,若重新宣 告陣列變數的維數,則會發生錯誤。

變數名稱

如同在 Visual Basic 中一般,一個變數名稱最多可使用 255 個 字元,變數名稱的命名規則如下:

1.變數的第一個字元需英文字母。例如 Person1 為有效變數 名,23men 則是不合規則的變數名稱。

2.變數名稱不可包含空白、點、,逗號或其他特殊字元。

3.變數名稱不可為關鍵字,例如 for、next、while、public 等

模組與程序

模組(Module):

功能:是存放程式碼的視窗,使用:可以建立很多模組,分別 存 放 不 同特 性的程 式 碼 ,包 含:在 模 組 中可 以建立 各 種 的程 序 (Procedure)、函數(Function)

程序(Procedure)與函數(Function)

程序(Procedure):呼叫這個程序後,會自動執行其內部的程式碼 Sub 程序名稱()

程式內容….

End Sub

函數(Function):在執行這個函數後,會傳回資料到主程式 Function 函數名稱(參數名稱)

程式內容…

函數名稱(參數名稱) = ……

End Function VBA 基本程式技巧

變數的宣告

Dim x as Integer

Dim str1,str2 as String Dim total as Long

Dim t_date as date

變數型態 大小 資料範圍 Byte 1 位元組 0~255

Boolean 2 位元組 True, False Integer 整數 2 位元組 -32768~32767

Long 長整數 4 位元組 -2147483648~2147483647

Currency 貨幣 8 位元組 -922337203685477.5808 ~ 922337203685477.5807

4 位元組 -3.402823E38 ~ -1.401298E-45 Double 倍 精 度 浮

Not 否 Not x

End Select End Select

Loop while x<5 Do until 條件

Loop until x<5 Do

在文檔中 課程: (頁 3-11)

相關文件