VBA與宏

VBA與宏
======
  剛開始的內容聽起來很枯燥,請你們不要分心,耐着性子看下去,興趣老是慢慢積累的。
------------------------------------------------------------------------------
       一、親自動手,錄製一段屬於本身的宏
  提到VBA,相信不少人想到的就是宏,可是VBA與宏是否是一回事?我以爲它們不是一回事,但這不重要,咱們要作的是先來認識一下宏。
  宏是什麼?
  我理解的宏是一系列固定動做的集合,這個集合當遇到讓他執行的條件後就逐個執行。
  有人把咱們錄製的宏比喻成一個武術運動員在比賽中練就的一段武術套路動做,這個套路遇到必定的條件(比賽)就執行。
  好了,別閒着,動一動你可愛的右手,點點鼠標,打開一個Excel文件,錄製一段宏來來研究研究,步驟以下:
  (1)選中任意一個單元格;
  (2)打開菜單—>工具—>宏—>錄製新宏,調出宏錄製對話框,輸入宏名(mysub),肯定;
  (3)設置單元格字體爲仿宋體,紅色;

  (4)點擊中止錄宏。
這樣,一個簡單的設置單元格格式的宏就錄好了。
-------------------------------------------------------------------------------------------------------------------
      二、鼠標點一點,宏給單元格換新裝
  下面咱們來執行這段宏。
  (1)選中須要設置的任意單元格或單元格區域(爲了看出效果,單元格最好有字符);
  (2)打開菜單—>工具—>宏—>宏,顯示「宏」對話框(快捷鍵:Alt+F8);
  (3)選擇咱們剛纔錄製的宏,單擊「執行」。

  這樣咱們看到已經爲剛纔選中的單元格的字體已被修改爲仿宋體,紅色。本身動手試着錄製幾段宏,再執行一下,加深印象。
  神奇了吧?之後當你再須要一遍又一遍地重複若干相同的操做的時候,會不會想到讓宏來替你作這一切?這是一個不錯的奴隸,不用花錢,且不用開工資,賺了吧?
  好了,收起你貪婪的笑容,繼續往下看。
  宏是什麼?如今相信你能想出一千種說法,由你了,又笨又懶的葉楓可沒你聰明,也再也不多說。
  上面說的執行宏的過程是否是讓你感受很麻煩?但願用快捷鍵來控制宏?這個咱們能夠在錄製宏以前在錄製宏對話框裏進行設置。也能夠在錄製宏後進行設置,按Alt+F8顯示宏對話框,單擊「選項」,在「宏選項」對話框裏進行設置
--------------------------------------------------------------------------------------------------------------
      三、尋根問底,找到宏的老窩
  若是你忘記了,請你再打開宏錄製對話框,在宏名的下面,有一個「保存在」的選項,點一點下拉的箭頭,咱們能夠看到,宏能夠保存在三種不一樣的位置,分別是:
  (1)當前工做簿(系統默認):宏保存在當前工做薄的模塊裏,只有當該工做薄打開時,宏才起做用。
  (2)新工做簿:新建一個工做薄保存。
  (3)我的宏工做簿:這是爲宏而設計的一種特殊的具備自動隱藏特性的工做簿,若是你要讓某個宏在多個工做簿都能使用,那麼就應當建立我的宏工做簿,並將宏保存於其中。

  上面咱們錄製的宏是保存在當前工做薄裏,今天咱們在這裏也只介紹保存在當前工做表裏的宏。
--------------------------------------------------------------------------------------------------------
      四、撥開層層迷霧,查看廬山真面目
  宏靠什麼來控制Excel的運行?是否是感受深在濃濃的迷霧裏,感受一頭霧水?讓咱們鼓一鼓勁,撥開它的衣服,開開那傢伙裏面究竟是什麼?
  (1)按Alt+F8快捷鍵打開「宏」對話框;
  (2)選擇咱們剛纔錄製的宏,點「編輯」按鈕。

  眼前一亮吧?這是一個新的天地——VBA的編輯器窗口(VBE),這個咱們之後再說,先將注意力集中到顯示的代碼上。代碼以下:編輯器


  1. Sub mysub()
  2. ' mysub Macro
  3.    ' 宏由ggsmart錄製,時間: 2009-2-27'
  4.   With Selection.Font
  5.     .Name = "仿宋_GB2312"
  6.     .Size = 12
  7.     .Strikethrough = False
  8.     .Superscript = False
  9.     .Subscript = False
  10.     .OutlineFont = False
  11.     .Shadow = False
  12.     .Underline = xlUnderlineStyleNone
  13.     .ColorIndex = xlAutomatic
  14.   End With
  15. Selection.Font.ColorIndex = 3
  16. End Sub
複製代碼

  如今你可能感受到上面這些亂七八糟的代碼會很陌生,甚至在問本身是否是來到外星人的世界,反正葉楓當初是這樣感受的,但不要爲此感到懼怕,未來咱們會慢慢熟悉他,就像閉上眼睛也能準確地將那個又大又紅的蘋果送到本身的嘴裏。
--------------------------------------------------------------------------------------------------------
      五、再進一步,給宏安上門鈴
  一遍一遍地在宏對話框裏選擇宏名稱,按「執行」按鈕來運行宏的麻煩是否是讓你鬱悶得有些想吐血?指定快捷鍵雖然方便,但別人用本身的工做表時能不能快速上手?就算是本身,若是宏多了,或是放的時間長了,你還記得哪一個快捷鍵控制哪一個宏?
  做爲excel開發者,一個主要的目標是爲自動化提供一個易於操做的界面,「按鈕」是最多見的界面組成元素之一,咱們能夠把宏指定給特定的按鈕,經過 按鈕來執行宏,仍是用剛纔咱們錄製的那個宏來舉例。經過使用「窗體」工具欄,能夠爲工做簿中的工做表添加按鈕。在建立完一個按鈕後,能夠爲它指定宏,而後 你的用戶就能夠經過單擊按鈕來執行宏。在本練習中,將建立一個按鈕,併爲它指定一個宏,而後用該按鈕來執行宏。具體步驟以下:
  (1)打開菜單—>視圖—>工具欄—>窗體,調出窗體工具欄。
     
函數


  (2)單擊」窗體「工具欄中的「按鈕」控件,在工做表中但願放置按鈕的位置按下鼠標左鍵,拖動鼠標畫出一個按鈕,鬆開鼠標後,Excel會自動顯示「指定宏」對話框。

        工具


  (3)從「指定宏」對話框中選擇「mysub」,單擊「肯定」。這樣,就把該宏指定給命令按鈕。學習

課間休息,插播一段廣告: 按 鈕,工做表等這些對象就像是Excel的衆多兒女,兒女太多,怎麼稱呼這羣兒女也是一個問題.爲了避免出現叫"兒子"就七八個一塊兒跑出來,同許多農村父母給 兒女起"老大,老二,老三……"的稱呼同樣,Excel也用這種順序的起名方法給這些兒女貼上了標籤.好比第一個按鈕是"按鈕一",再畫一個就是"按鈕 二",而後是"按鈕三","銨鈕四"等等.這樣,之後你要叫第三個兒子的時候直接叫"按鈕三"便可.若是你嫌這個名字鄉下味太濃,若是你嫌這個名字不能很 好地反映點擊它後會執行怎樣的操做不清楚,你能夠經過雙擊按鈕表面激活它,可從新爲按鈕貼上合適的顯示標籤.須要提醒你的是,這裏的標籤只是它顯示在你面 前的樣子,實際上它是什麼名字?咱們能夠點擊它,看一下名稱框裏是什麼. 

  
 

  
       爲何顯示出來的是同樣,而實際的名字倒是另外一樣呢?也許你如今會感到迷茫,但不用管它,之後當咱們學習了屬性後,一切就天然明白了.

  下面咱們來試一試用按鈕操做:
   (1)選擇單元格或單元格區域;
   (2)單擊按鈕。

    字體



  按鈕就像裝在樓下的門鈴,美麗的嫦娥仙子家住在502,豬八戒來到樓下,找準號碼502,輕輕一按,「叮咚,叮咚……」,嫦娥在樓上就給八戒開門了, 八戒不用在樓下大聲地喊「嫦娥,開門。」也不用花兩毛錢給嫦娥打個電話,固然更不用順着下水管從牆上爬進嫦娥的窗戶,方便而實在吧?
  這種遙控式的命令的確能讓繁瑣的操做變得簡單而方便,讓咱們得到了一些使用Excel標準命令所不能實現的功能。若是你是八戒,當你熟悉瞭如何使用這種遙控同樣的門鈴之後,你可能都會奇怪本身當初在沒有門鈴的狀況下,那段漫長的爬下水管道的日子是怎麼熬過來的。
  讓嫦娥仙子開門的方法有不少種,一樣執行宏也有多種方法能夠選擇,咱們還能夠把宏指定給圖片,自選圖形,這些比較簡單,和指定給窗體按鈕是同樣的,同 時咱們還能夠把宏指定給某個「事件」,好比單擊工做表,雙擊工做表,激活工做表,打開工做簿等等,你要安什麼要的門鈴,選什麼樣的音樂,隨你了。
  須要強調一點的是,咱們剛說的「事件」是一個重要的概念,八戒按門鈴,就是一個「事件」,這個「事件」引起了嫦娥的開門,只有門鈴響了,嫦娥纔會去開門。除此而外「方法」「對象」「屬性」都是接下來咱們會常常接觸到的,慢慢走,留心點,一路上將會精彩不斷。
-----------------------------------------------------------------------------------------------------------
    六、小結
  到這裏,咱們對宏應該有一個簡單的瞭解了吧?宏實際上就是一個簡單的VBA的Sub過程,它保存在模塊裏,以Sub開頭,以End Sub結尾,執行時就從第一句逐句執行,直到End Sub結束。就像前面咱們說的武術運動員練的那段套路動做,老是抱拳,扎馬,出拳而後踢腿,永遠不可能沒有扎馬就出拳,沒有出拳就踢腿。咱們今天錄的這段 宏也老是先設字體,再改字體顏色,這種順序永遠不會亂。
  說完這些,你是否是感受這些操做古板得沒有生氣?是否是感受這宏的操做不能知足本身的需求?
  葉楓想告訴你的是,宏代碼毫不等於VBA,它只是VBA裏最簡單的運用,儘管許多Excel過程均可以用錄製宏來完成,可是經過宏代碼仍是沒法完成許多的工做,如:
  (1)不能夠創建公式,函數;
  (2)沒有判斷或循環的功能;
  (3)不能進行人機交互;
  (4)沒法顯示用戶窗體;
  (5)沒法與其餘軟件或文件進行互動。
       …….


  因此,你看了上面的內容後千萬不要覺得宏就是VBA了,更不要覺得本身已經會VBA了,事實上是你纔剛沾上VBA的邊,或者說連邊都沒沾上,甚至連宏今天咱們都只是做了簡單的介紹。

  路漫漫其修遠兮,還等着咱們上下去求索,路在腳下,武林高手老是從練習簡單的套路動做開始,不要厭倦扎馬的單調,靜下心多練練,這會是你之後練習武功 招式的一個基礎,孔子老人家說了,要溫故而知新,記得複習鞏固,不要學了後面忘了前面,到下次葉楓再見到你的時候你什麼都忘記了,好了,今天就到這裏,讓 咱們一塊兒加油~~~~spa

相關文章
相關標籤/搜索