Excel中的宏(Macro)是什麼
在Excel的“視圖”標籤頁下,有一個宏的功能,示例如下圖:
宏其實是一段可以重複執行的代碼,對應上圖的兩個選項:
- 查看宏:查看已經存在的宏的代碼段,並且可以執行
- 錄製宏: Excel提供了可以像錄製聲音那樣錄製宏的代碼段,點擊“錄製宏”之後,接下來對Excel的操作會自動轉換爲代碼。
宏的來歷
既然宏是可以重複執行的代碼段,那宏是什麼語言的代碼呢?答案是VBA, 那VBA是什麼語言呢? 這就要從BASIC語言說起了。
- BASIC是一門很古老的計算機語言,發表於1964年。BASIC代碼通過BASIC解釋器翻譯爲計算機能識別的機器指令。
微軟的DOS、Windows 3、Windows 9系列預裝了BASIC解釋器(稱爲:QBasic),所以可以直接寫Basic程序;但從Windows 2000開始,就不再預裝BASIC解釋器了。 - 微軟基於Windows 圖形界面開發了新的Visual Basic語言,並提供了可視化的便捷開發工具Visual Basic IDE。不過是需要收費的。
1996年,微軟開發Visual Basic Scripting Editing(即VBScript),類似快速書寫批處理腳本,語法和VB保持一致。VBScript在操作系統內置。
VBA: Visual Basic for Applications 。微軟在Office系列產品中集成了VBScript解釋器,這個VBScript就是VBA。除了解釋器,還有集成開發環境,一個簡化版的Visual Basic IDE。
所以, 宏屬於VB語言系列,但是屬於腳本語言, 也就是不需要編譯爲exe文件,可以由解釋器直接解釋運行,宏的代碼示例:
Sub 宏1()
'
' 宏1 宏
'
'
Cells.Select
Range("G22").Activate
Selection.Copy
Sheets("Sheet1").Select
Cells.Select
Range("F26").Activate
ActiveSheet.Paste
End Sub
- Sub 是VB語言的過程, 相當於函數的概念
- 單引號 ’ 用來添加註釋,屬於VB的語法
- Cells、Sheets、ActiveSheet 是VBA的對象
集成在Excel 中的開發IDE如下:
宏能幹什麼?
宏是一段腳本代碼,能夠幫助我們進行重複、繁雜的動作。最重要的是宏的編寫或錄製很簡單,沒有編程經驗或是沒有VBA語言的基礎也可以實現簡單的宏。宏一般是用來處理複雜的Excel,也就是內容較多或是格式等較爲複雜。宏可以用來:
- 對Excel文件、工作表(Sheet)等進行操作,可以像界面操作一樣複製、刪除、移動
- 對單元格(Cell)進行操作,包括設置值、獲取Comment等
- 可以將Excel中的數據輸出到文件中
- …
典型應用包括:
- 收集不同Excel中的工作表統一到一份Excel中,自動產生報表
- 在系統開發時,用來收集初始數據或是增量的Admin數據
3.。。。
宏的錄製
接下來以一個複製工作表的實例演示宏的錄製。
-
視圖>宏>錄製宏
-
切到Sheet2,在界面上Ctrl+A選中Sheet2的所有Cell, 鍵盤Ctrl+C
-
切到Sheet1,Ctrl+A選中Sheet1的所有Cell,鍵盤Ctrl+V
-
點擊“停止錄製”,保存宏
以上宏的錄製就完成了, 通過查看宏, -
點擊“執行”就可以重複剛剛錄製的動作了
-
點擊“編輯”就可以打開IDE並看到錄製的宏的代碼。如果有VB的編程基礎,基礎VBA的API就可以進行宏的編程了。
宏的保存
宏的代碼段是保存在Excel文件中,在老版本的Excel中需要開啓允許宏的設置, 新版本的Excel則需要保存後綴名是 .xlsm 的文件。如下圖:
如果不保存.xlsm 類型,則會報如下提示,而且保存之後宏也可能丟失。