[1][VBA基礎](https://hackmd.io/@aroncode/S19NqX0WC) [2][VBA變數的概念](https://hackmd.io/@aroncode/SJXRlNAWA) [3][Inputbox](https://hackmd.io/@aroncode/SJ6XvNRWC) [4][條件語句](https://hackmd.io/@aroncode/H1hZ94R-A) [5][物件的概念](https://hackmd.io/@aroncode/H1zoyckXA) [6][循環語句](https://hackmd.io/@aroncode/HkS3-hJXC) [7][巨集與函數](https://hackmd.io/@aroncode/BJarvh1QA) # 變數的概念 把變數想像成一個物件下的屬性,變數有可能在程式執行中發生變化,例如x=1,那過程中可能會發生加減,影響最後x的結果。 與變數相對的概念是「常數」,常數在程式設計當中不會去更改它。 ## 變數 ### 命名規則 1. 不可使用@、&、$、-等這類符號,但可以使用半形數字、英文、底線。 1. 名稱開頭不可以以數字或底線開頭,例如:_test、1test。 1. 不可使用VBA保留字,例如:Sub。 1. 不可使用內建巨集名稱。 1. 名稱長度必須低於255個字元。 (全形是2個字元) ### 型態 ![image](https://hackmd.io/_uploads/r18oQ4RZR.png) 資料來源:https://s4017050400.medium.com/excel-vba-%E8%B3%87%E6%96%99%E5%9E%8B%E6%85%8B-bcda2206229a ### 範例1 ``` Sub Square() Dim Height As Integer Dim Width As Integer Dim area As Integer Height = 10 Width = 5 area = Height * Width MsgBox area End Sub ``` 在VBA中,如果你使用未宣告的變數,VBA 會將其視為新的 Variant 類型的變數。 這意味著,如果你沒有使用 Dim 語句明確宣告變量,VBA 會隱含地將其宣告為 Variant 類型。 雖然 Variant 類型的變數在某些情況下很方便,但在大多數情況下,最好明確聲明變數的資料類型。 這有助於提高程式碼的可讀性,並幫助在編寫和偵錯程式碼時捕獲潛在的錯誤。 在你的程式碼中,如果你沒有使用 Dim 來宣告 Height、Width 和 area,那麼這些變數會被隱式宣告為 Variant 類型。 但由於你在後面的程式碼中將它們用作整數類型進行乘法運算,VBA 可能會產生類型不匹配的錯誤或意外的行為。 因此,最好明確聲明這些變數的類型,以避免這種類型的錯誤。 ### 變數的算術邏輯 範例1 ``` Sub test() Dim x As Integer x = 1 x = x + 1 MsgBox x End Sub ``` 範例2 ``` Sub test() Dim x As Integer x = 1 x = x + 1 MsgBox x '2 x = x * 5 MsgBox x '10 x = x / 2 MsgBox x '5 x = x - 5 MsgBox x '0 End Sub ``` 單行寫法 ``` Sub test() Dim x As Integer: x = 1: x = x + 1: MsgBox x End Sub ``` 更多運算子 * 指數:^ * 取商數:\ * 取餘數:Mod