Excel VBA 中的 10 個基本概念

Excel VBA 基本原理

說到 Excel VBA 的基本原理,自然的出現兩種基本概念,一是 VBA 語法層面,一是 Excel 層面。那麼這兩者有什麼區別,參考下面的圖。

Excel VBA 中的 10 個基本概念

簡單的總結一下上圖:Excel 是一個對象,這個對象包含很多屬性和子對象,而 VBA 是可以操作這些對象的工具,實現各種各樣的效果。例如,Excel 包括 Range 對象,即單元格對象,使用 VBA 可以改變單元格對象的填充顏色屬性。用代碼表示如下。

'A1 單元格的填充顏色設置為顏色號為 49407 的顏色
Range("A1").Interior.Color = 49407

上面的代碼現在不懂沒關係,在這裡使用代碼簡單的演示一下 Excel 中的對象和 VBA 的關係。

  • Range(“A1”)、Interior、Color 等是 Excel 具備的對象和屬性;
  • 對象和屬性的操作,是通過 VBA 語言實現的,即上面是一行 VBA 代碼。中間的等號(=)是 VBA 語言的賦值符號,也是能改變單元格填充顏色的關鍵所在。

以上就是 Excel VBA 的基本原理。下面從 VBA 語言層面和 Excel 對象層面,分別介紹相關基本概念。

VBA 語言中基本概念

註釋

註釋是代碼中不會被執行的一段代碼。註釋是幾乎所有編程語言具備的功能,VBA 也不例外。

VBA 中的註釋以英文單引號 (‘) 開頭,後面接註釋的內容。從單引號開始的部分不會被執行。

'我是一行註釋

註釋,正如字面意思,用來對代碼進行解釋。在寫代碼過程中,對代碼進行註釋是好的習慣,有助於自己或別人,更好的理解已經存在的一段代碼。

關於註釋的使用,在往後的教程中可以看到很多用法,可以進一步加深理解。

變量

變量是存儲數據的一種表達方式。在程序開始,可以聲明一個變量,指定變量的類型(數字、文本、邏輯值等),並給變量賦值。在程序其他地方,就可以用該變量,使其存儲的值參與運算。

以下方代碼為例,

'聲明一個文本類型的變量 

Dim val As String
'給 val 變量賦值,即 "Hello World"
val = "Hello World"
'在 A1 單元格寫入 val 變量存儲的數據
Range("A1").Value = val

可以看到,val 變量存儲 “Hello World”文本,該文本在程序中就可以用 val 變量表示。這部分內容在下一章「變量、類型和運算符」中詳細介紹。

程序結構

程序結構表示程序的運行方式。VBA 正是因為存在多種代碼結構,才能實現各類複雜的數據計算。常用的代碼結構以下三種:

  • 順序結構
  • 條件結構
  • 循環結構

順序結構,顧名思義,程序按照順序執行。在 VBA 中就是從上到下,一行一行地執行。

條件結構,代碼中的指定部分,按照某個條件,選擇性地執行。即,條件為真時,執行指定代碼;否則跳過該部分代碼,不執行。

循環結構,代碼中的指定部分,按指定次數,循環執行。這是為什麼 VBA 的效率高的一個原因,因為它能將相同的操作,自動按任意數量重複執行。

關於程序結構的內容,在「程序結構」一章中詳細介紹。

過程和函數

過程或函數包含多行代碼,是組織代碼的兩種方式。一般情況下,一個過程或函數只包含實現一個功能的相關代碼。如果一個過程或函數實現多個功能,建議將代碼分成多個過程或函數。

過程和函數都可以執行一段代碼,主要區別是,執行完代碼後,函數能返回一個值,而過程不能返回。更多內容將在「過程和函數」章節介紹。

數組

數組表示一組同類型的數據的集合,是 VBA 中最重要的概念之一。以下面的代碼為例:

'創建數組
Dim Val(1 to 4) As String
'給數組的元素賦值
Val(1) = "Excel"

Val(2) = "Word"
Val(3) = "PowerPoint"
Val(4) = "Outlook"

上述代碼創建了一個長度為4個、類型為文本的一個數組。對數組,使用編號給相應位置進行賦值。

在 VBA 的實際應用中,經常需要將單元格的數據轉換為數組進行處理。更多內容在「數組」章節介紹。

對象

對象是一個物,它可以是一個事、一個物體、一個概念、一個名詞。對象包含描述靜態信息的屬性和對對象可以操作的方法。

以生活中的對象為例子,汽車是一個對象。汽車的車牌號、油量、里程等是汽車的屬性;開車、加油、換車牌等是汽車的方法。

在 VBA 中也是類似。工作表(Worksheet)是一個對象,它具有名稱、標籤顏色等屬性,有添加、刪除等方法。Excel VBA 中對象將在「Excel VBA 對象模型」一章中詳細介紹。

Excel VBA 中的基本概念

Excel 對象模型

在上面對象一段中,說到了工作表(Worksheet)對象。其實 Excel 本身是就是一個對象,是 Excel 中的最大的對象,使用 Application 表示。Application 對象又包含工作簿(Workbook)對象,工作簿(Workbook)對象又包含工作表(Worksheet)對象,而工作表(Worksheet)對象又包含其他的子對象。

上面一段基本描述了 Excel VBA 對象模型,即是一種樹狀結構,多個對象通過有邏輯的層次結構組織在一起。

Excel VBA 中的 10 個基本概念

更多內容在「Excel VBA 對象模型」一章中詳細介紹。

常用 Excel 對象

  • Application 對象,表示 Excel 應用程序。
  • Workbook 對象,表示工作簿對象。
  • Worksheet 對象,表示工作表對象
  • Range 對象,表示單元格區域對象。

模塊

模塊是包含一個或多個過程或函數的內部組件。一個工作簿內包含的模塊數量沒有限制,一個模塊內包含的過程或函數數量也沒有限制。模塊用來作為保存過程或函數的容器,這些過程和函數通常應用於整個工作簿。

通過把多個過程和函數,合理的放置在不同的模塊,可以使整個 VBA 代碼邏輯更清晰、更易於閱讀和理解。

用戶窗體

用戶窗體是 VBA 代碼與使用者交互的用戶界面。Excel VBA 提供很多基本的窗體控件,可以製作複雜的用戶界面。最典型的,Excel 中設置單元格格式的窗口界面,就是一個用戶窗體。

Excel VBA 中的 10 個基本概念

最基本的窗體控件包括:

  • 文本控件
  • 按鈕控件
  • 列表控件
  • 輸入控件

關於窗體的更多內容,將在「用戶窗體」一章詳細介紹。

其他基本概念

VBA 編輯器正 Excel 中寫 VBA 代碼的地方。編輯器中可以進行下列操作:

  • 編寫代碼
  • 修改已有的代碼
  • 插入新的模塊,編輯模塊中的代碼
  • 插入用戶窗體,設計窗體界面
  • 運行代碼
  • 調試代碼

這部分內容將在「Excel VBA 編輯器」章節詳細介紹。

以上就是今天要介紹的 Excel VBA 基本概念。在往後的教程中,它們會不斷出現,加深你的理解。如有問題,歡迎在留言區評論討論。


分享到:


相關文章: