VBA運算子是設計程式必須掌握的基本語法,大部分程式專案都會用到,本文以簡單範例介紹將近20個實務上較為常用關鍵字及特殊符號,補充應注意事項。
目錄
Toggle一、加減乘除計算
VBA進行加減乘除就跟在Excel設定公式或者一般常見的程式語言一樣,也和習慣的數學計算式相同,先乘除後加減,可以用括號設定優先順序。請參考截圖左側的代碼範例和右側的「即時運算」結果視窗。
讀者有需要複製程式碼測試使用,請前往贊贊小屋VBA程式設計資料庫。

二、特殊數學符號
除了加減乘除之外,還有一些較為特別的數學計算,例如「^」次方、「\」商數、「Mod」餘數。注意到VBA進行餘數計算會自動將除數或被除數四捨五入,贊贊小屋實際測試發現結果可能和預期不太一樣,建議讀者有使用Mod這個函數先驗證執行看看。

三、大小比較運算子
接下來介紹在數值分析或者篩選常常會用到的大小比較,「=」相等、「>」大於、「>=」大於等於、「<>」不等於,這個跟通常在電腦裡面的表達方式是完全相同。
在此補充VBA有個關鍵字「Empty」,其作用類似於在Excel函數公式常常會會用的將兩個雙引號連在一起「””」,代表是空白或者是空字串。在Excel其實有個函數關鍵字「blank」代表空白,而在VBA可以用跟Excel同樣的表達式,「””」表示是空子串,也可以使用這裡所介紹的「Empty」。

四、物件對象相等
上個步驟是數值之間的對比,而VBA源自於VB,是面向對象的程式語言。因此有些時候也會進行對象之間的對比,可以使用簡單且字義相符的關鍵字「Is」,例如這裡的範例是比較A、B兩個工作表是否為相同物件。
既然「Is」是關於物件是否相等的關鍵字,從另外一個角度測試程式,「1 Is 2」前後兩者都是常數而非對象,執行時會提示「形態不符合」的錯誤。

五、Like模糊比對
前面介紹了數值與對象的比較,接下來介紹另外一種主要形態:文字內容的比較。
這裡用到關鍵字「Like」,從截圖4個簡單範例瞭解到它可以搭配特殊符號進行有效的模糊比對,例如不限字串長度的「*」星字號,限定字串長度的「?」問號,還有「#」井字號代表數字,「[]」中括號代表一系列清單。依照贊贊小屋經驗,這些萬用字元足以應付大部分文字比對的需求了。

六、邏輯關係判斷
程式設計很多時候需要評估判斷,依照判斷結果進行程式執行的流程控制,這時候主要會用到邏輯關係。「And」並且和「Or」是兩個主要邏輯判斷。另外VBA尚有一般可能較少用到的「Xor」、「Not」,這些可說是進行布林真假值的計算,同樣請參考範例應該能瞭解其基本用法。

七、數值文字串連
前面第四步驟提到物件和數值文字之間形態不同,不能夠混用,不過如果是數值和文字都是屬於常數的資料形態。在Excel輸入資料或者公式計算,有時候會自動進行數值及文字兩者之間的資料形態轉換,在VBA程式也是如此,即使嚴格而論,「+」數學加號用於數值計算,「&」串連符號用於文字連接,不過在實際程式執行的時候,VBA在可容許範圍內會自動輔助數值和文字之間的資料形態轉換,兩者為同一型態後再做計算,請參考這裡簡單的範例。

VBA運算子與Python、Excel
這篇文章所介紹運算子是在程式設計裡面最基本的語法,因此不僅僅是在VBA,目前主流熱門的Python或者是接近程式語言的Power BI M語言同樣會有運算表達式的用法,也許和VBA稍微有點不同,本質上大同小異,甚至是在非程式的Excel函數公式也是有具有計算功能,因此其實在Excel也是有運算子的相關規範。
參考資源:微軟VBA運算子摘要。
想要瞭解Python運算子,可以參考下列文章:
想要瞭解Excel及VBA運算子如何運用在實際案例,可以參考下列文章:
Excel間接部門成本分攤表,ROW、VLOOKUP、INT、MOD函數
想要完整學習VBA,零基礎入門到進階,歡迎報名贊贊小屋課程總時數20個小時的VBA大全集課程:
