Excel VBA 基礎(0)

開設此專欄初衷是面向有一定實務基礎的財務人員。但在寫本期文章之前,看了知乎上其他一些 Excel VBA教程,感覺VBA編程的受眾大致處於基礎階段。一些專欄作者水平相當有限,文章本身也紕漏百出。我深感正本清源之必要。於是我決定,面對零基礎的讀者,結合自己的學習歷程與開發實務,寫出自己心中最理想的入門教程。

本人不才,願將自己實踐積累毫無保留地與大家分享。

關於本人的專業背景請參見本專欄的第一篇文章。

【】標註內容請務必熟悉,實務中必備。

1. 初識VBA

【啟動快捷鍵 Alt + F11】

1.1 為了方便日後使用 VBA以及宏命名 請開啟如下界面

文件 - 選項 - 自定義功能區 確保 開發工具 被勾選。基本界面上就會出現 「開發工具" 選項卡。

1.2 立即窗口

VBA編輯器(VBE)啟動後,請設置 立即窗口 為開啟狀態。

視圖 - 立即窗口, 快捷鍵 Ctrl + G

此時在 立即窗口中 嘗試輸入 以下命令 並 按下回車。

注意: 1. 輸入任何命令之前,請將你的輸入法切換成英文 2. 不要忘記前面的 問號(?) 3.按 回車顯示結果

? 1+1n

發現了么?這就是VBA的交互窗口,也是實際開發中最最常用的技巧之一。

恭喜你,你的VBA之路由此開始。

此時你可以在立即窗口中試試其他函數(Function)。

? now()n

按下回車後發現了什麼

? len("qiou.eu")n

這個呢?知道這有什麼功能了么?

所謂函數,可以想像成一個黑箱子,這個箱子有一個投料口,有一個成品出口。當你投入某個參數(Parameter),箱子內部經過一系列作用,最終得到一個返回值(Return)。具體內部如何作用,暫時不在我們考慮範圍之內。目前只需記住 函數 就是 將輸入 經過內部過程轉變為 特定輸出的 功能代碼。

now 以及 len 都是 VBA 預先定義的函數。

函數調用(evoke),遵循如下模式

函數名稱(參數)n

now, len 都是函數名。但是now返回當前系統時間,不接受參數(為什麼?),len返回字元串長度(什麼是字元串? 簡單理解為文字,具體請參見下期數據類型),參數自然為目標字元串(不含前後兩個引號)。無參函數的括弧可以省略。

關於函數,內容還相當豐富,本期只是介紹一個梗概。

1.3 第一個項目

在工程窗口中 右擊 , 選擇 插入 - 模塊

此時默認名稱為 "模塊1"

在名稱欄, 將 "模塊1" 更名為 "Main" (注意M大寫, 養成良好編程習慣從入門開始)

並在右方主窗口輸入如下 代碼

Option ExplicitnnPublic Sub main()n n helloWorldn nEnd Subnn pop out the messagenPrivate Function helloWorld()n n MsgBox "Hello World!"n nEnd Functionn

請務必手動輸入。編程就是一種感覺,這種感覺來源於實踐。

輸入完畢後,用游標點擊 Sub main() 的反括弧之後

再單擊圖上所示綠色向右箭頭 【運行: F5】

發現什麼了么?

目前僅僅需要知道,main 為程序運行起點。

單引號之後 為注釋。即該部分內容不會被執行。實際開發中注釋甚至要比代碼本身還要重要。

代碼解釋,請見下期。

此教程獻給我的朋友CC, 謝謝你的鼓勵。願你每天都能過得充實而幸福。


推薦閱讀:

【VBA初學者教程】- 第一章 VBA入門知識:花式打開工作簿
Excel+VBA製作小遊戲:俄羅斯方塊
百萬次實驗告訴你,堅持到底不一定勝利!
Excel+VBA製作小遊戲:翻卡牌
九九乘法表?三行就夠了!

TAG:MicrosoftExcel | VBA | 入门教程 |