【轉】VBA編程入門(二)

來源:互聯網
上載者:User

標籤:col   顏色   中間   依賴   --   儲存   替換   poi   控制   

詳解VBA編程是什麼由 vietdung90 建立,最後一次修改 2016-10-19

直到 90 年代早期,使應用程式自動化還是充滿挑戰性的領域.對每個需要自動化的應用程式,人們不得不學習一種不同的自動化語言.例如:可以用EXCEL的宏語言來使EXCEL自動化,使用WORD BASIC使WORD自動化,等等.微軟決定讓它開發出來的應用程式共用一種通用的自動化語言--------Visual Basic For Application(VBA),可以認為 VBA 是非常流行的應用程式開發語言VASUAL BASIC 的子集.實際上VBA是"寄生於"VB應用程式的版本.VBA和VB的區別包括如下幾個方面:

 

1. VB是設計用於建立標準的應用程式,而VBA是使已有的應用程式(EXCEL等)自動化


2. VB具有自己的開發環境,而VBA必須寄生於已有的應用程式.


3. 要運行 VB 開發的應用程式,使用者不必安裝 VB,因為 VB 開發出的應用程式是可執行檔(*.EXE),而VBA開發的程式必須依賴於它的"父"應用程式,例如EXCEL.

儘管存在這些不同,VBA和VB在結構上仍然十分相似.事實上,如果你已經瞭解了VB,會發現學習VBA非常快.相應的,學完VBA會給學習VB打下堅實的基礎.而且,當學會在EXCEL中用VBA建立解決方案後,即已具備在WORD ACCESS OUTLOOK FOXPRO PROWERPOINT 中用VBA建立解決方
案的大部分知識.


* VBA一個關鍵特徵是你所學的知識在微軟的一些產品中可以相互轉化.


* VBA可以稱作EXCEL的"遙控器".


VBA 究竟是什麼?更確切地講,它是一種自動化語言,它可以使常用的程式自動化,可以建立自訂的解決方案.


此外,如果你願意,還可以將EXCEL用做開發平台實現應用程式.

 

 EXCEL環境中基於應用程式自動化的優點也許你想知道VBA可以幹什麼? 使用VBA可以實現的功能包括:

 


1. 使重複的任務自動化.


2. 自訂EXCEL工具列,菜單和介面.


3. 簡化模板的使用.


4. 自訂EXCEL,使其成為開發平台.


5. 建立報表.


6. 對資料進行複雜的操作和分析.


用EXCEL作為開發平台有如下原因:


1. EXCEL本身功能強大,包括列印,檔案處理,格式化和文本編輯.


2. EXCEL內建大量函數.


3. EXCEL介面熟悉.


4. 可串連到多種資料庫.


用其他語言開發應用程式,一半的工作是編寫一些準系統的模組,包括檔案的開啟和儲存,列印,複製等.而用EXCEL作為開發平台,則由於EXCEL已經具備這些準系統,你要做的只是使用它.

 

錄製簡單的宏在介紹學習VBA之前,應該花幾分鐘錄製一個宏。

 


新術語:"宏",指一系列EXCEL能夠執行的VBA語句。


以下將要錄製的宏非常簡單,只是改變儲存格顏色。請完成如下步驟:


1、開啟新活頁簿,確認其他活頁簿已經關閉。


2、選擇A1儲存格。調出"常用"工具列。


3、選擇"工具"-"宏"-"錄製新宏"。


4、輸入"改變顏色"作為宏名替換預設宏名,單擊確定,注意,此時狀態列中顯示"錄製",特別是"停止錄製"工具列也顯示出來。替換預設宏名主要是便於分別這些宏。


★ 宏名最多可為255個字元,並且必須以字母開始。其中可用的字元包括:字母、數字和底線。宏名中不允許出現空格。通常用底線代表空格。


5、選擇"格式"的"儲存格",選擇"圖案"選項中的紅色,單擊"確定"。


6、單擊"停止錄製"工具列按鈕,結束宏錄製過程。

※ 如果"停止錄製"工具列開始並未出現,請選擇"工具"-"宏"-"停止錄製"。
錄製完一個宏後就可以執行它了。

 

執行宏當執行一個宏時,EXCEL 按照宏語句執行的情況就像 VBA 代碼在對 EXCEL 進行"遙控"。但VBA 的"遙控"不僅能使操作變得簡便,還能使你獲得一些使用 EXCEL 標準命令所無法實現的功能。而且,一旦熟悉了 EXCEL 的"遙控",你都會奇怪自己在沒有這些"遙控"的情況下,到底是怎麼熬過來的。要執行剛才錄製的宏,可以按以下步驟進行:

 


1、選擇任何一個儲存格,比如A3。


2、選擇"工具"-"宏"-"宏",顯示"宏"對話方塊。


3、選擇"改變顏色",選擇"執行",則 A3 儲存格的顏色變為紅色。試著選擇其它儲存格和幾個儲存格組成的地區,然後再執行宏,以便加深印象。

 

查看錄製的代碼到底是什麼在控制EXCEL的運行呢?你可能有些疑惑.好,讓我們看看VBA的語句吧.

 

1、選擇"工具"-"宏"-"宏",顯示"宏"對話方塊。


2、單擊列表中的"改變顏色",選擇"編輯"按鈕。
此時,會開啟 VBA 的編輯器視窗(VBE)。關於該編輯器,以後再詳細說明,先將注意力集中到顯示的代碼上。代碼如下:(日期和姓名會有不同)
Sub 改變顏色()

‘ 改變顏色 Macro
‘ xw 記錄的宏 2000-6-10


With Selection.Interior
.ColorIndex = 3
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
End With
End Sub

將來會十分熟悉這種代碼,雖然現在它們看上去像一種奇怪的外語。學習 VBA 或程式設計語言在某
種程度上比較像在學習一種外語。


Sub 改變顏色():這是宏的名稱。
中間的以" ‘"開頭的五行稱為"注釋",它在錄製宏時自動產生。
以With 開頭到End  With 結束的結構是With結構語句,這段語句是宏的主要部分。注意單詞"selection",它代表"反白的地區"(即:選定地區)。With Selection.Interior :它讀作"選擇地區的的內部".這整段語句設定該地區內部的一些"屬性"。


其中:
.ColorIndex = 3: 將該內部設為紅色。注意:有一小圓點,它的作用在於簡化語句,小圓點代替出現在With後的詞,它是With結構的一部分。另外:紅色被數字化為3.(紅色警戒是否可稱作:3號警戒,嗯?)有興趣的話,你將3改為其他數字試試看。

.Pattern = xlSolid:設定該地區的內部圖案。由於是錄製宏,所以,雖然你並未設定這一項,
宏仍然將其記錄下來(因為在"圖案"選項中有此一項,只是你未曾設定而已)。xlSolid 表示純
色。

.PatternColorIndex = xlAutomatic:表示內部圖案底紋顏色為自動配色。


End With:結束With 語句。


End Sub:整個宏的結束

 

編輯錄製的代碼在上一節,我們錄製了一個宏並查看了代碼,代碼中有兩句實際上並不起作用。哪兩句?
現在,在宏中作一個修改,刪除多餘行,直到和下面代碼相同:
Sub 改變顏色()

‘ 改變顏色 Macro
‘ xw 記錄的宏 2000-6-10


With Selection.Interior
.ColorIndex = 3
End With
End Sub

 


完成後,在工作表中實驗一下。你會發現結果和修改前的狀況一樣。在 With 語句前加入一行:

Range("A5").Select
試著運行該宏,則無論開始選擇哪個儲存格,宏運行結果都是使A5儲存格變紅.


現在可以看到,編輯錄製的宏同樣非常簡單。需要編輯宏是因為以下三個方面的原因。

一:在錄製中出錯而不得不修改。

 

二:錄製的宏中有多餘的語句需要刪除,提高宏的運行速度。

 

三:希望增加宏的功能。比如:加入判斷或迴圈等無法錄製的語句。

 

錄製宏的局限性希望自動化的許多 EXCEL 過程大多都可以用錄製宏來完成.但是宏記錄器存在以下局限性.

 

通過宏記錄器無法完成的工作有:


1、錄製的宏無判斷或迴圈能力.


2、人機互動能力差,即使用者無法進行輸入,電腦無法給出提示.


3、無法顯示EXCEL對話方塊.


4、無法顯示自訂表單.

 

小結本章節中,你已經掌握了 VBA 的一些基礎知識,你會錄製宏、編輯宏而且瞭解了錄製宏的局限性,並且已經為將來學習VBA甚至VB等程式設計語言打下了基礎.關鍵是你已經瞭解了一個謎底,就是說,你瞭解了什麼是編程.下面是些小練習。

 

 

【轉】VBA編程入門(二)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.