目錄
{tocify} $title={目錄}
VBA宣告變數的方式
不知道您是否知道編輯程式中,我們需要宣告變數來儲存程式運算所需要的資料呢?
以下就讓我們來試著在VBA中宣告變數吧。
變數可以指在電腦記憶體裏存在值的被命名的儲存空間。 變數通常是可被修改的,即可以用來表示可變的狀態。 這是許多語言的基本概念之一。有的語言可能定義其它術語。 當某個已宣告變數開始使用,直譯器或編譯器通常會設定一個空間來儲存所給出的值。 稍後該變數不再使用時,那些空間可以回收。 也有觀點認為,變數應該和數學的原意一致,不需要允許它儲存的值可變,不需要有能力表示可變狀態。 有些程式語言中的變數必須帶有型別。
- 引用自維基百科
宣告變數的基本格式
Dim 變數名稱 As 資料型態
意思為將變數設定為某資料型態,這在程式設計中為非常重要的部分
依據資料型態的不同,變數所佔的記憶體也會有所不同。
依據資料型態的不同,變數所佔的記憶體也會有所不同。
除了佔據的記憶體,針對不同情況,設定適合的資料型態,也有助於提升執行速度。
變數名稱的設定,盡量避免無意義的變數名稱,這對後來的除錯會有很大的影響。
變數名稱的設定,盡量避免無意義的變數名稱,這對後來的除錯會有很大的影響。
範例
以下為常見的幾種資料型態
' 變數宣告的基本格式
' Dim 變數名稱 As 資料型態
' 變數的資料型態常用的有以下幾種類型
' 1. Byte型態 - 位元組
Dim myByte As Byte
' 2. Boolean型態 - 布林
Dim mybBool As Boolean
' 3. Integer型態 - 整數
Dim myInt As Integer
' 4. Long型態 - 長整數
Dim myLong As Long
' 5. Single型態 - 單精度浮點數
Dim mySingle As Single
' 6. Double型態 - 雙精度浮點數
Dim myDouble As Double
' 7. Currency型態 - 貨幣
Dim myCurrency As Currency
' 8. Date型態 - 日期
Dim myDate As Date
' 9. String型態 - 字串
Dim myString As String
' 10. Variant型態 - 自由型態
Dim myVariant As Variant
Dim myVariant2
' 11. Object型態 - 物件
Dim myObject As Object
關於變數的宣告可參考以下連結影片
變數型態的省略寫法
在Excel VBA編輯程式中,其實有些資料型態,也有人說型別,是可以縮寫成簡單的符號的喔。 不過雖然可以寫成簡單的符號,但能使用的資料型態有限,並不是所有的資料型態都有簡單的符號可以使用喔。 雖然簡單的符號,看起來好像很厲害,但我不太習慣使用這些符號呢。
以下就讓我們來試著在VBA中,使用簡單的符號代替資料型態吧。
在VBA中的變數型態,有幾種可以寫成簡易的寫法
分別為
分別為
String: 省略符號為 "$"
Integer: 省略符號為 "%"
Long: 省略符號為 "&"
Single: 省略符號為 "!"
Double: 省略符號為 "#"
Currency: 省略符號為 "@"
撰寫方式為省略As,並在變數後方直接加上符號即可
值得注意的是,並非每一種資料型態皆可以加上符號簡寫
使用省略符號,執行的速度上並沒有太大的差異。
由於在變數宣告時,還是直接寫成文字比較容易除錯,
簡易寫法的符號就供參考囉 😆
值得注意的是,並非每一種資料型態皆可以加上符號簡寫
使用省略符號,執行的速度上並沒有太大的差異。
由於在變數宣告時,還是直接寫成文字比較容易除錯,
簡易寫法的符號就供參考囉 😆
範例
' 宣告變數可省略的型態有以下幾種
' 撰寫方法為在變數後加上省略符號
' 1. String: 省略符號為 "$"
Dim myString$
' 2. Integer: 省略符號為 "%"
Dim myInteger{%}
' 3. Long: 省略符號為 "&"
Dim myLong&
' 4. Single: 省略符號為 "!"
Dim mySingle!
' 5. Double: 省略符號為 "#"
Dim myDouble#
' 6. Currency: 省略符號為 "@"
Dim myCurrency@
關於變數型態的省略寫法可參考以下連結影片
強制宣告變數的設定方式
在撰寫程式的過程中,不免會不斷的宣告變數,供我們程式使用。 但如果宣告了變數,但我們並沒有使用,這時候應該要怎麼處理呢? 其實在在Excel VBA編輯程式中,可以設定強制宣告變數, 經過強制宣告變數功能的設定,就可以輕鬆幫我們檢查沒有使用的變數呢。
以下就讓我們來試著在VBA中,使用強制變數宣告的功能吧。
1. 進到VBE程式編輯畫面
2. 選擇上方的工具,接著選擇選項
3. 在彈出的選項視窗中,選擇編輯器頁籤,並在頁籤中的要求變數宣告(R)打勾
接著按下確定
4. 接著在重新插入模組後
會在編輯區看到 Option Explicit
加入強制宣告後
進行強制宣告後,表示撰寫的程式內,變數都需經過宣告後才能使用
這樣避免宣告了一些未使用的變數,影響記憶體的使用。
另外加入強制宣告後,若有變數未經宣告並使用
編譯器會顯示並提示編譯錯誤,變數未定義
這對我們在撰寫程式的時候非常有幫助
若未在選項視窗中,選擇編輯器頁籤,並在頁籤中的要求變數宣告(R)打勾
也可以自行在程式編輯區的最上方手動增加Option Explicit,進行強制宣告。
設定變數初期值
如果變數想要在宣告後順便在後方追加初期值,
可以透過 " :
" 冒號 連結,將初期值設定在變數後方。
雖然 " : " 冒號可以寫成單行讓程式進行連續處理,
適當的使用可以帶來方便,但也有可能影響閱讀性。
個人覺得視需求使用即可。
變數省略符號的寫法也適用喔。
一般撰寫方式
1. 先進行變數宣告。Dim myInt As Integer
2. 接著再設定值給變數。
myInt = 10
透過 " : " 冒號,將初期值設置在變數的後方的方式
Point!
Dim 變數名稱 As 資料型態 : 變數名稱 = 初期值
例 : Dim myInt As Integer: myInt = 10
省略符號的型態也可以使用 " : " 連接,設定初期值。
Point!
Dim 變數名稱省略符號 : 變數名稱 = 初期值
範例
' 標準寫法
' Dim myInt As Integer
' myInt = 10
'但是如果想要合併成一行,可使用 " : " 冒號連接
' Dim 變數名稱 As 資料型態 : 變數名稱 = 初期值
Dim myInt As Integer: myInt = 10
' ==============================
' 省略寫法的資料型態也可使用
' Dim 變數名稱省略符號 : 變數名稱 = 初期值
Dim myStr$: myStr = "Hello world"
關於設定變數初期值可參考以下連結影片
使用常數
在程式當中,變數可以任意修改或變更其值,但是如果類似像圓周率,或是稅率,
但如果想要在程式中不想要任意改變數值時,可使用Const 敘述宣告,
而使用Const 宣告的常數,稱為使用者定義常數。
如果以後想要修改常數,只要修改宣告為常數的那一行程式即可。
VBA當中也有許多內建的常數可使用,內建常數會在撰寫程式時,
自動顯示其成員,並且可以從清單中選取使用。
基本格式
Point!
Const 常數名稱 As 資料型態 = 值
範例
Sub 使用常數()
' 基本格式
' Const 常數名稱 As 資料型態 = 值
' 使用於不會經常改變的值
' 宣告變數
Dim diameter As Double: diameter = 10
Dim result As Double
' 宣告常數
Const PI As Double = 3.14
' 計算圓周
result = diameter * PI
'顯示結果
MsgBox result
End Sub
執行後的結果如下
關於使用常數可參考以下連結影片