學習Excel技術,關注微信公眾號:
excelperfect
要在Excel中編寫宏程序,首先需要了解VBA語言,而快速入門的技巧就是使用宏錄製器。
宏錄製器就像一臺錄音機,可以使用VBA監聽和記錄你在Excel中所做的一切操作。對於初學者來說,你可能不了解VBA,這裡,我們會使用宏錄製器來記錄我們的操作,然後看看記錄的指令(也就是代碼),以了解VBA是什麼。
下面我們來編寫第一個VBA宏程序。其功能非常簡單,將選擇的單元格中的字體設置為加粗、斜體並將其顏色設置為紅色。
第1步:選擇任意單元格,開啟宏錄製器
很簡單。只需選擇任意單元格,然後到功能區「開發工具」選項卡「代碼」組中,單擊「錄製宏」按鈕,如下圖1所示。(也可以在選擇單元格後,直接單擊Excel界面左下角的「錄製宏」按鈕)
圖1
第2步:給宏命名
在彈出的「錄製宏」對話框中,在「宏名」文本框中輸入錄製的宏的名字,本示例將宏命名為「SetFontandColor」,如下圖2所示。單擊「確定」關閉「錄製宏」對話框。注意,如果不指定宏名,Excel會以宏1、宏2來自動給宏命名。
圖2
第3步:在Excel中執行操作
回到Excel工作表界面,單擊功能區「開始」選項卡「字體」組中的「加粗」、「傾斜」按鈕,然後單擊「字體顏色」下拉按鈕設置為紅色。
第4步:停止錄製
現在,你已經在Excel中執行完想要的操作。回到「開發工具」選項卡,單擊「代碼」組中的「停止錄製」按鈕,如下圖3所示。(同樣,可直接單擊Excel界面左下角的「停止錄製」按鈕)
圖3
第5步(可選):將宏指定給按鈕
單擊「插入」選項卡「插圖」組中的「形狀」按鈕,在工作表中繪製一個矩形並設置合適的格式。然後,在矩形中輸入文本「選擇單元格後單擊我」。接著,在矩形中單擊右鍵,從快捷菜單中選擇「指定宏」命令。在彈出的「指定宏」對話框中選擇剛才錄製的宏「SetFontandColor」,單擊「確定」按鈕,如下圖4所示。
圖4
步驟6:驗證錄製的宏的效果
選擇任意單元格,單擊「選擇單元格後單擊我」,可以看到所選單元格中的文字變成紅色加粗斜體。
下面,我們來看看並試著理解錄製的宏代碼。
單擊功能區「開發工具」選項卡「代碼」組中的「Visual Basic」按鈕,如下圖5所示。
圖5
或者,選擇任一工作表標籤,單擊右鍵,在快捷菜單中選取「查看代碼」命令,如下圖6所示。
圖6
或者,最快速的方法是按Alt+F11鍵。
打開VBE編輯器(Visual Basic Editor),如下圖7所示。在VBE中,你可以查看或編輯VBA代碼。
圖7
在VBE的工程資源管理器窗口中,雙擊「模塊1」,可以看到SetFontandColor代碼如下:
Sub SetFontandColor()
'
' SetFontandColor 宏
'
'
Selection.Font.Bold = True
Selection.Font.Italic = True
With Selection.Font
.Color = -16776961
.TintAndShade = 0
End With
End Sub
代碼中:
Sub SetFontandColor():告訴Excel正在編寫一組新的指令。單詞Sub表示VBA的下列行是子過程(或子程序)。在計算機術語中,這是一組相關的指令,必須一起執行操作才有意義。當Excel看到End Sub時,子過程結束。
以單引號(『)開始的行:表示該行為注釋,其作用是便於理解程序。Excel將忽略單引號開始的行。
Selection.Font.Bold = True:將所選單元格字體設置為粗體。
Selection.Font.Italic = True:將所選單元格字體設置為斜體。
With Selection.Font:雖然對你我來說,設置紅色字體似乎是一個步驟,但實際上對計算機來說可能不只一步。並且,每當需要對同一事物執行很多操作(如本例中為選定的單元格)時,最好將它們全部捆綁在一起。這是With語句出現的地方。當Excel看到WithSelection.Font時,Excel會認為:「好吧,我將對「選定單元格」的字體進行操作,直到看到EndWith。
With語句塊內的行:告訴Excel對所選單元格的字體進行操作。本例中,最關鍵的是.Color= -16776961,告訴Excel將所選單元格字體設置為紅色。
End With:結束With語句塊。
End Sub:結束名為SetFontandColor的宏過程。
要理解這段代碼,你可以修改語句,再執行SetFontandColor過程,看修改後的結果。例如,你可以將:
Sub SetFontandColor1()
'
' SetFontandColor 宏
'
'
With Selection.Font
.Bold = True
.Italic = True
.Color = -16776961
.TintAndShade = 0
End With
End Sub
當然,一個程序中還可能涉及到變量、條件語句、循環語句等。另外,也會出現如上面示例程序中的許多其他的對象名稱及其方法和屬性,讓我們在後續的示例學習中慢慢接觸並探索吧。
[預告]在知識星球App:完美Excel社群中,即將推出電子書《100+個有用的ExcelVBA代碼》,相信對於學習和使用ExcelVBA的朋友來說,特別是對於初學者來說,一定會有很好的幫助。
歡迎在下面留言,完善本文內容,讓更多的人學到更完美的知識。
歡迎到知識星球:完美Excel社群,進行技術交流和提問,獲取更多電子資料。
完美Excel社群假期動態
#話題# 祝願大家中秋國慶雙節快樂!新的電子書已在路上
#電子書# 《使用VBA操控Excel界面》下載
#預告# 假期後半段,計劃發布一本關於Excel VBA代碼的電子書
#話題# 白話Excel VBA的概念
#電子書# 分享《無需計算機的計算機科學》