在Office2000之前,VBA用於Word、Excel和Access等辦公系統軟件中,但由Office 2000統壹使用。
Excel是第壹個包含VBA的應用程序。自Office2000以來,在Exel、Word、PowerPoint和Access中出現了統壹的宏語言VBA,其中Excel和Access最為成熟。
在Excel中,VBA程序可以存儲在。xls或單獨的文本形式。要學習VBA,用戶首先必須對VB有壹定的了解(但不必非常專業,畢竟經常使用Excel的用戶壹般都是上班族,不可能是專業程序員),然後用宏記錄器學習。因為宏記錄器可以記錄宏,用戶可以非常清楚地了解VBA的許多情況。此外,如果不是功能強大的VBA程序,使用宏記錄器就足夠了。要打開密碼記錄器,請單擊工具-》宏-》錄制新宏。此外,用戶可以使用“工具-》宏-》宏。。。”管理宏。您可以使用“工具-》宏-》VB編輯器”或Alt+F11打開VB編輯器。在VB程序員中,您可以輕松管理整個VB項目並編寫VBA代碼。此外,用戶可以單擊Alt+F11切換到Excel窗口。
VBA的使用過程:
1.創建壹個Excel文件。
2.創建壹個控件,然後雙擊該控件或右鍵單擊該控件,並單擊“查看代碼”以查看該控件的壹個事件,如click、keydown等。
編寫執行代碼。要創建控件,請單擊視圖-》;工具欄-& gt;控件工具箱“中,打開“控件工具箱“列,然後可以將控件直接拖動到Excel單元格中。在Excel窗口中,添加的控件通常處於執行狀態。如果要編輯該控件,可以在首次創建該控件時編輯其屬性,或者打開控件工具箱,也可以使該控件處於編輯狀態。如果不起作用,您可以添加另壹個控件,然後現有控件肯定會處於編輯狀態。當然,修改控件後,不要忘記刪除新添加的無用控件。在編輯狀態下,可以右鍵單擊控件並單擊“屬性”,然後可以打開屬性窗口,在該窗口中可以輕松編輯控件的名稱、標題、大小等屬性。
3.手動或使用宏記錄器對控件的事件進行編碼。宏記錄器簡單易用,但強大的功能仍然需要在VBA手寫。
VBA物件介紹:
編寫VBA代碼的關鍵是靈活使用VBA對象並操作這些VBA對象的屬性或方法。此外,您還可以創建自定義函數來封裝某些操作。既然是VBA,編碼風格當然和VB壹樣。如果妳懂VB,只要妳對VBA對象有更好的理解,妳就可以編寫壹個強大的VBA程序。同樣,如果妳不知道VB,那麽妳只需要知道VBA的對象,因為它相對簡單和容易學習。
下面分別討論VBA對象的屬性和方法:
在壹些可以包含其他對象的窗口對象中,有幾個特殊屬性的屬性值是當前活動的對象,並且可以直接引用它們。
表1的壹些特殊性質
對象名稱含義
ActiveWorkbook當前工作簿,也就是說,如果您打開了幾個Excel文件,那麽您正在編輯的Excel文件當然是ActiveWorkbook。
ActiveSheet當前工作簿中的當前工作表是當前編輯的Excel文件中正在編輯的工作表。
當前工作表中的活動單元格。
活動圖表當前工作簿中的活動圖表。
選擇當前選定的對象。
下面詳細介紹了這些對象及其屬性和方法。
壹、申請對象
該對象是指Excel應用程序的工作環境。
《1》屬性
1.標題屬性
含義:顯示在Excel應用程序標題欄中的文本。
示例:Application.caption=“船員管理系統”。如果指定為空,將恢復Excel的默認標題欄。
2.光標屬性
含義:Excel中鼠標的形狀。
表2遊標屬性
屬性值鼠標形狀
XlDefault缺少壹個值,鼠標缺少壹個形狀。
XlWait等待壹個值,鼠標呈沙漏形狀,不斷轉動。
XlNorthwestArrow值時,鼠標呈標準箭頭形狀。
XlIBeam文本值,鼠標呈“I”形以等待用戶輸入文本。
操作:應用。Cursor=xlWait等。
3.顯示警報屬性
含義:用於決定是否顯示系統的應用提示和警告信息。如果不是,將壹些屬性設置為false,反之亦然。
4.顯示公式欄屬性
含義:用於確定公式編輯欄是否顯示。
5.顯示ScrollBars屬性
含義:用於決定是否顯示Excel的滾動條。
6.DisplayStatusBar屬性
含義:用於決定是否顯示Excel的狀態欄。
7.EnableCancelkey屬性
含義:它用於確定是否允許用戶中斷正在執行的VBA程序。默認情況下,在VBA程序執行期間,用戶可以通過按Ctrl+Break來中斷VBA程序的執行。此時,該屬性的值為xlInterrupt。如果要中斷禁用VBA程序,將其分配給xlDisabled由;如果VBA在執行過程中遇到錯誤需要停止,它將被指定為xlErrorHandler。
8.屏幕更新屬性
含義:用於決定是否顯示VBA程序的中間運算結果。
9.狀態欄屬性
含義:設置狀態欄的文本。
10,ActiveWorkbook屬性
含義:如表1所述。
11、活動表
含義:如表1所述。
12,ActiveCell屬性
含義:如表1所述。
13,ThisWorkBook屬性
含義:用於返回正在執行VBA程序的工作簿對象。這不是當前工作簿。例如,當打開多個工作簿時,ActiveWorkbook屬性返回當前的Workbook對象,ThisWorkbook返回運行VBA程序的workbook對象。
14,PathSeparator屬性
含義:返回文件的文件路徑分隔符“\“,這是壹個只讀屬性。
示例:將strPath標註為字符串
strPath =應用程序。ThisWorkbook . Path & amp申請。路徑運算符
練習冊。打開strPath & amp“myExcel.xls“
15,用戶名屬性
含義:設置當前用戶名。默認用戶由“Excel選項”對話框的“常規”選項卡中的用戶名決定。用戶可以從“工具”菜單中選擇選項來打開選項,並在“常規”選項卡上的“用戶名”文本框中重置默認用戶名。
《2》方法
1、計算方法
含義:重新計算Excel打開的工作簿中的所有公式。
2.轉到方法
含義:在工作簿中選擇壹個Range對象或壹個VBA過程,格式如下:
申請。轉到參考,滾動
Reference參數指示Goto方法的目標。如果scroll參數為True,滾動條將滾動以使Range對象出現在工作簿窗口的左上角。如果Scroll參數為False,則當前工作簿窗口不會更改其屬性。默認值為Galse
示例:應用程序。哥特蘭茲(“C3”),沒錯。
3.InputBox方法
含義:用於打開壹個輸入對話框,允許用戶輸入數據。格式如下:
申請。InputBox(提示、標題、左側、頂部、幫助文件、幫助上下文ID、類型)
prompt參數用於設置輸入對話框的提示信息。
title參數用於設置輸入對話框的標題文本。
default參數用於設置輸入對話框的默認輸入值。
left和top參數用於設置輸入對話框左上角的坐標值。
helpFile參數用於設置輸入對話框在線幫助的名稱。
HelpContextID參數用於設置輸入對話框在線幫助主題的上下文標識號。
type參數用於設置輸入對話框中輸入數據的類型。默認情況下,它是文本類型。
示例:用戶值=應用程序。InputBox(“請輸入數據”、“數據輸入”,類型:=7)。
4.Onkey方法
含義:當壹個鍵或組合鍵被按下時,VBA代碼被執行。自己試試,也可以看看VB編輯器的提示(就是在VB編輯器中輸入application io後彈出的下拉提示。Onkey)。
第二,工作簿對象集
所有當前打開的工作簿對象的集合。
& ltI》屬性
1,Count屬性,只讀,返回Excel打開的工作簿數。
& lt第二》方式
1,Add方法,給workbook對象設置壹個新的工作簿,相當於“file-》;新”命令。格式如下:
練習冊。添加模板
2.Open方法打開指定的工作簿。看看VBA編輯器中關於格式的提示就知道了。我太累了,寫不完。
3.關閉工作簿文件的Close方法。
第三,工作簿對象
代表獨立的工作簿文件
& ltI》屬性
1,ActiveSheet屬性返回當前工作簿中的活動Sheet對象。
2.Author屬性,該屬性返回或設置工作簿作者的姓名,從而確定工作簿的所有者。
3.Saved屬性用於檢查工作簿文件是否已被修改。
& lt第二》方式
1,Activate方法,用於將工作簿凍結為當前活動工作簿,例如workbooks(“my office . xls“)。激活。
2.Close方法用於關閉指定的工作簿。
3.Save方法用於保存指定的工作簿。
4.SaveAs方法,用於另存為指定的工作簿。
第四,工作表對象集
代表當前工作簿中所有工作表的集合。
& ltI》屬性
1,Count屬性返回當前工作簿中工作表的數量。
& lt第二》方式
1,Add方法,向工作表對象集合中添加壹個新的工作表對象,格式如下:
工作表。添加之前、之後、計數、類型
Before和After參數指的是在哪個工作表之前或之後插入新工作表。該值為工作表
例如:工作表。add before:= worksheets(“Sheet2“),它相當於在sheet 2工作表之前插入壹個新工作表。
動詞 (verb的縮寫)工作表對象
代表工作簿的單獨工作表。
要獲取工作表,您可以使用工作表(“辦公費用”)或報表,如工作表(3)。
& ltI》屬性
1,Name屬性設置或返回工作表對象的名稱。
2.Visible屬性確定是否隱藏工作表。
& lt第二》方式
1,Calculate方法,重新計算指定工作表中的所有公式。
2.Copy方法用於復制指定的工作表並將其放置在指定的位置,這實際上是壹個復制和粘貼並重的功能。
格式:工作表-對象。復制之前,之後
例如,工作表(“工作表2”)。copy after:= worksheets(“office expenses”)相當於復制sheet2工作表並將其放在名為“office expenses”的工作表之後。
3.Move方法,該方法移動指定的工作表並將其放置在指定的位置。用戶和復制方法是壹樣的,區別只是復制和剪切的區別。
4.Delete方法,該方法刪除指定的不帶參數的工作表,如工作表(“sheet 2“)delete。
5.方法獲取指定工作表的指定行和列中的單元格。
格式:工作表-對象。單元格(row,col),其中row和col是整數,行和列的值從1開始。
例如,工作表(“工作表2”)。cell(1,1)等效於獲取sheet2工作表的第壹行第壹列中的單元格。
動詞 (verb的縮寫)範圍對象
表示壹個半橋區域,可以由多個半橋或壹個單元組成。
引用單元格有兩種方式:
壹種是使用單元格引用,例如範圍(“A1”)和範圍(“A1: C3”)。
第二種是使用單元格區域名稱,如Range(“my Range”)。
& ltI》屬性
1、常規1C1屬性,用於建立和存儲指定單元格或單元格區域的公式。
例如範圍(“C5”)。正則1c 1 =“= sum(r【-4】c:r【-1】c)“
2.值屬性,該屬性為指定的單元格或單元格區域賦值。如果有多個單元格,則它們都被賦予相同的值。
3.單元格屬性,將引用單元格與指定單元格描述為壹場苦戰,並將指定單元格視為第1行和第1列。
格式:範圍-對象。單元格(行,列)
4.偏移量,描述被引用單元格與指定單元格的激烈鬥爭,並將指定單元格視為第0行第0列。
格式:範圍-對象。單元格(行,列)
5.Name屬性,該屬性返回或設置指定單元格或單元格區域的名稱。那麽在VBA,妳可以直接用名字來稱呼它。
6.Count屬性,該屬性返回指定單元格區域中包含的單元格數目。只讀。
7.CurrentRegion屬性,該屬性返回基於單元格存儲數據的鏈接單元格區域。
& lt第二》方式
1.Select方法用於選擇指定的單元格區域。執行後,單元格區域左上角的第壹個單元格成為活動單元格。
例如範圍(“A1: C3”)。選擇範圍(“A1: C3,D5: E6,A8: E8”)。選擇。
2.Activate方法,用於選擇指定單元格並將其指定為活動單元格。當然,只有單元格區域左上角的第壹個單元格成為活動單元格。
3.自動調整方法:調整所選單元格區域所在行和列的行高和列寬,使行高和列寬自動設置為最佳高度和寬度。
如:範圍(“a4”)。當前區域。選擇
選擇。行。自動調整
4.Clear方法,清除指定單元格區域的內容、格式和註釋,相當於“編輯-》清除-》全部”
如:範圍(“A4:C5”)。清楚的
5.ClearContents方法,相當於“編輯-》清除-》內容”。
6.ClearFormats方法,相當於“編輯-》清除-》格式”。
7.ClearComments和ClearNotes方法用於清除指定單元格區域的內容,相當於“編輯-》清除-》註釋”
8.復制方法:將指定單元格區域中的數據庫復制到剪貼板或指定的目標單元格區域。
9.剪切方法:將指定單元格區域中的數據庫剪切到剪貼板或指定的目標單元格區域。
10,PasteSpecial方法,用於有選擇地將剪貼板中復制或剪切單元格區域中的數據庫粘貼到指定的目標單元格區域中。
格式:range-object . paste特殊粘貼、操作、傳送空白、轉置。
粘貼參數指定要粘貼的卷類型數據的選擇,如公式、內容、註釋等。具體數值請參考VB編輯器中的提示。