網頁

2013年3月6日 星期三

不同資料類型,可以用 & 加以連接

先說這是 Excel VBA 的特異功能,別的程式語言不見得有。

在 Excel VBA,你可以這樣寫:

Sub test_2()
    MsgBox "我 " & 180 & " 公分,生日是 " & #12/31/1980#
End Sub

用 & 符號,直接連接不同資料類型的資料,非常直觀。

為什麼在 Sub 裡不能 print?

不為什麼,就是規定,入 VBA 環境隨俗。

print 指令只適用在 "即時運算" 視窗,那種寫一行程式的地方。如果要在程式中,把東西印到 "即時運算" 視窗,可以用 debug.print。

Alt+F11 進入 VBA 環境後,按下 Ctrl+G,讓 "即時運算" 視窗出現。

再教另一個指令,msgbox(在 VBA 中,內建指令不分大小寫,VBA 會自動幫你轉成有大寫有小寫的美麗易讀字樣):

Sub test_1()
    Debug.Print 180
    MsgBox 180
End Sub

按下 F5 執行,自己看結果。

開始寫多行程式

有了基本觀念,也知道如何寫一行程式,可以開始寫多行程式,一樣,進入 Excel 之後,按下 Alt+F11,進入 VBA 環境,接著按下 Alt+I、M,畫面應該類似這樣:


新增了一個 Module1 的模組,先別管名詞,模組就是程式。

程式要有個名字,以及包含的(可能不只一行的)程式碼。VBA 規定的寫法是:

Sub 程式名字
    (你要寫的程式碼在這裡)
End Sub

當你輸入自己取的程式名字之後,VBA 會自動在它後面加入左右括弧,左右括弧之後會提到,現在不知道也沒關係。

VBA 也會自動在下一行加入 End Sub。自己取的程式名字,有些基本規定,初學者不知道這些規定沒關係,反正若你取的名字不符合規定,VBA 會以紅色提醒你,程式自然也不能執行。

把之前學會的 print 打進去:

Sub test_1()
    print 180
End Sub

按下 F5 執行。程式出錯! 沒關係,關閉那個錯誤視窗之後,按下 Alt+R、R,重新回到寫程式的地方,當作什麼事都沒發生就好了,電腦不會冒煙,更不會因此爆炸。這就是寫程式的好處,不必擔心把電腦 "弄壞掉"。