1.3 VBA的第一個程式
先來聊聊幾塊:
1.錄製巨集
2.自己寫的VBA CODE
1.錄製巨集:
先來看自己錄製的巨集,長相如何:
Sub 巨集1()
' 巨集1 巨集
Range("B3").Select
ActiveCell.FormulaR1C1 = "=R[-2]C+R[-1]C"
Range("B4").Select
End Sub
恩好多英文單字,但不難在英文單字間,存在某個程度的架構。
圖1.巨集1
由上往下看看最:
SUB架構:
外層架構 SUB~~END SUB 把所有程式碼包起來了,這部分稱為SUB架構。
接下來,紅圈部分圈選了 ". "與等號
先來看看等號的部分,先引入一個觀念:
VBA 程式語言是等號右手邊做計算,跟數學不一樣,數學式是等號左手邊做計算。
VBA 程式語言是等號右手邊計算完成後,提供給等號左手邊做儲存或是對應的處理。
紅圈部分圈選了 ". "的部分,為物件方法與屬性:
錄製的巨集中". " 都出現在等號左手邊???? 因為要使用到物件了,不同物件存有各自的屬性與方法,要透過". "來調用的。
越來越多問號了?
第一個問號紀錄:SUB架構是啥?
ANS:簡單來說用來存放程式碼的地方,SUB 接續程式的名稱並以END SUB作為結尾。
如前篇的Hello world:
SUB HELLO_WORLD()
debug. Print "hello world"
end sub
第二個問號紀錄:物件方法與屬性是啥。
講完都睡著了,先暫時不回答。
掌握那些觀念:
VBA 程式語言是等號用途與數學式不一樣
2.自己寫的VBA CODE:
一樣的功能,針對b1與b2儲存格做加總計算後,存放於b3儲存格中。
Sub total()
ActiveSheet.Range("b3") = ActiveSheet.Range("b1") + ActiveSheet.Range("b2")
End Sub
疑?等等怎才一行,錄製的有3行ㄝ呵呵,好煩歐,先不管這些。
b1跟b2儲存格在等號右手邊,但寫法怎明顯不同。
可以透過range這個關鍵字,可以直接使用excel函數操作熟悉的儲存格表示方式。
所以我們來做做第一個程式吧
Sub CAL()
ActiveSheet.Range("B1") = ActiveSheet.Range("c1") + ActiveSheet.Range("d1")
ActiveSheet.Range("B2") = ActiveSheet.Range("c1") - ActiveSheet.Range("d1")
ActiveSheet.Range("B3") = ActiveSheet.Range("c1") * ActiveSheet.Range("d1")
ActiveSheet.Range("B4") = ActiveSheet.Range("c1") / ActiveSheet.Range("d1")
End Sub
操做:
沒有留言:
張貼留言