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 | 入门教程 |