VBA 基礎知識介紹及與VB的對比

2020-12-13 電子產品世界

 Visual Basic 的應用程式版(VBA)是Microsoft 公司長期追求的目標,使可編程應用軟體得到完美的實現,它作為一種通用的宏語言可被所有的Microsoft 可編程應用軟體所共享。在沒有VBA 以前,一些應用軟體如Excel、Word、Access、Project 等都採用自己的宏語言供用戶開發使用,但每種宏語言都是獨立的,需要用戶專門去學習,它們之間互不兼容,使得應用軟體之間不能在程序上互聯。擁有一種可跨越多個應用軟體,使各應用軟體產品具有高效、靈活且一致性的開發工具是至關重要的。

本文引用地址:http://www.eepw.com.cn/article/149083.htm

VBA 作為一種新一代的標準宏語言,具有上述跨越多種應用軟體並且具有控制應用軟體對象的能力,使得程序設計人員僅需學習一種統一的標準宏語言,就可以轉換到特定的應用軟體上去,程序設計人員在編程和調試代碼時所看到的是相同的用戶界面,而且VBA 與原應用軟體的宏語言相兼容,以保障用戶在代碼和工作上的投資。有了VBA 以後,多種應用程式共用一種宏語言,節省了程序人員的學習時間,提高了不同應用軟體間的相互開發和調用能力。

  在Office 2000 中,宏語言VBA 適用於所有應用程式,包括Word 、 Excel、PowerPoint、Access、Outlook 以及Project。在Office 97 的各應用程式中,新增了Visual Basic 編輯器。這樣,用戶無論是在Excel 中,還是在Word 中以至是在Access 中建立和管理VBA 都具有統一的方法和標準。

  在介紹如何利用VBA 提高工作效率之前,首先介紹一些與VBA 有關的基礎知識

  VBA 是基於Visual Basic 發展而來的,它們具有相似的語言結構。Visual Basic 是Microsoft 的主要圖形界面開發工具,VBA 5.0 (亦即VBA 97)則是Visual Basic 5.0 的子集。Visual Basic 是由Basic 發展而來的第四代語言。Visual Basic 作為一套獨立的 Windows 系統開發工具,可用於開發Windows 環境下的各類應用程式,是一種可視化的、面向對象的、採用事件驅動方式的結構化高級程序設計語言。它具有高效率、簡單易學及功能強大的特點。VB 的程序語言簡單、便捷,利用其事件驅動的編程機制,新穎易用的可視化設計工具,並使用Windows 應用程式接口(API)函數,採用動態連結庫(DLL)、動態數據交換(DDE)、對象的連結與嵌入(OLE)以及開放式資料庫訪問(ODBC)等技術,可以高效、快速地編制出 Windows 環境下功能強大、圖形界面豐富的應用軟體系統。

  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用做開發平臺實現應用程式.

  Office取得巨大成功的一個重要原因就是VBA,使用VBA可以完成很多事情,基於Excel、Word的VBA小程序不計其數。

  VBA程式設計師很多是業餘程式設計師,正因為業餘,解決的卻是工作中需要解決的問題;所以,VBA程序大多都是只是在部門內部或個人使用的小工具。

  集成了VBA的其他應用程式也很多,但真正能為程序增色的不多。

  大多數人看到了VBA可以自動化一個程序,可以擴展已有程序,但沒有看到在Office中,VBA代碼可以是錄製的,而不是寫出來的,帶來的好處是,學習曲線變得非常緩。如果沒有宏錄製功能,要熟悉某個Office組件的對象模型,絕非一日之功。

  以ArcGIS為例,ArcGIS擴展必須使用ArcObject,不管是使用VBA也罷,VB也罷,還是C++也罷。但同時,ArcObject的學習不是一天兩天可以搞定,對於業餘程式設計師,要使用VBA來擴展ArcGIS,幾乎沒有可能;專業程式設計師又不屑使用VBA;而對於公司,如果要基於ArcObject來擴展ArcGIS,選擇VBA意味著源碼的保護很困難。所以,ArcGIS的VBA就如同雞肋。

  不過,學習AO的時候,使用VBA比使用其他語言要容易一些,寫幾行代碼,然後直接運行測試結果,這種交互式的學習應該是最好的學習方法。

  ArcGIS以及AO與Office相比,還有一個很大的差別,就是ArcGIS缺乏中等粒度的對象,例如Word和Excel的Range對象。對於Office開發,可以在對底層小粒度對象一無所知的狀況下做很多事情,這就是抽象的力量。常人可以處理的複雜度是有限的,面對數十個對象和幾百個對象,後者需要付出的努力不是10倍,而是數十倍或更多,因為在學習過程中,必須可以把這些對象在大腦中很好的組織,以控制其複雜度。

  Visual Basic for Applications(簡稱VBA)是新一代標準宏語言,是基於Visual Basic for Windows 發展而來的。它與傳統的宏語言不同,傳統的宏語言不具有高級語言的特徵,沒有面向對象的程序設計概念和方法。而VBA 提供了面向對象的程序設計方法,提供了相當完整的程序設計語言。VBA 易於學習掌握,可以使用宏記錄器記錄用戶的各種操作並將其轉換為VBA 程序代碼。這樣用戶可以容易地將日常工作轉換為VBA 程序代碼,使工作自動化。因此,對於在工作中需要經常使用Office 套裝軟體的用戶,學用VBA 有助於使工作自動化,提高工作效率。另外,由於VBA 可以直接應用Office 套裝軟體的各項強大功能,所以對於程序設計人員的程序設計和開發更加方便快捷。

相關焦點

  • WPS教程:excel新手入門VBA功能使用介紹
    Excel教學:今天和大家分享一下excel中vba的使用方法入門,相信很多使用該軟體的朋友們對此都很感興趣,下面就和大家來分享一下,希望可以幫助到大家。工具/原料電腦:組裝臺式機系統:windows 10專業版版本:WPS Office 2019 PC版方法/步驟1.首先,我要知道商品的單價是12.5,在D1單元格輸入【商品單價】,在D2單元格輸入12.52.接著我們打開vb界面,在常用工具欄上執行:開發工具--visual basic。
  • Address屬性介紹,vba編程學習基礎知識
    No.1Address是Range對象的一個重要屬性,而用好這個屬性也是學習vba編程一個必修課。本章介紹關於Address的一些參數功能,對於全面了解和學習Range地址尋址方面十分必要。Address英譯為地址。
  • Excel vba 利用定義名稱實現用戶登錄功能
    文/江覓易見在vba 中實現用戶登錄,並對登錄用戶進行身份識別,然後對用戶進行分組管理,此類功能值得進一步思考。這裡介紹一種方法,利用Excel中的名稱管理來進行身份識別,起到用戶登錄次數以及增減用戶的功能。
  • VBA基礎-數組知識
    以下是運行代碼及運行耗費時間對比。     三個方法:①array函數創建 ② split函數創建 ③ 通過Range對象直接創建數組     arr = array(4,6)     arr = split("你好@vba
  • excel VBA是什麼?VBA編程入門教程
    本篇將介紹excel vba是什麼?vba編程入門教程,有興趣的朋友可以了解一下!一、excel vba是什麼?VBA的英文全稱是Visual Basic for Applications,是一門標準的宏語言。VBA語言不能單獨運行,只能被office軟體(如:Word、Excel等)所調用。
  • vba字典功能介紹,Excel辦公效率就這麼高
    vba字典功能十分有用,如果對其它編程有一定了解,那麼對於字典也不陌生,它代表著高效和強大的數據處理功能。字典功能介紹那麼如何在vba中運用字典功能?具體格式,看下圖字典應用大概介紹完字典如何應用,進入正題。這個例子很簡單,對顏色RGB值和名稱進行字典存儲,然後再應用,字典值對表格顏色設置的過程。
  • 用Excel vba 實現「計劃管理」過程,圖表顯示
    這篇文章就以vba的方式來對「計劃管理」做一個解讀。存在一些不完善的地方,希望有用的朋友更進一步繼續完善。這裡做一個添加計劃表,和完成情況的效果瀏覽。至於進度管理可以在接下來的過程繼續完成。, vbInformation, "提示": Exit Subv(6) = VBA.CDate(VBA.UCase(VBA.Trim(cObj.Value)))Case "T8"If Not VBA.IsDate(cObj.Value) Then MsgBox cObj.Value & "_日期錯誤!"
  • VBA編程理論學習之談
    有些是解決基本應用需求,也有一些是Excel vba基礎的對象以及屬性功能介紹。總的來說,這個月有一些進展,也有一些心得和知識積累。有幾篇比較不錯的文章持續得到展示和瀏覽,說明這方面還是做到了大多數關注。
  • VBA語法基礎,語法是語言的基礎
    VBA的語法很簡單易懂,邏輯性強,但很全面,因此涉及的方面也較多,本文及隨後的一系列文章將重點介紹VBA語法方面的相關知識。
  • 「Python替代Excel Vba」系列(終):vba中調用Python
    如下圖:數據大致表示每個部門每個月的銷售情況Units Sold 列是銷售額本文所用到的 pandas 技巧都在之前的章節已有詳細介紹,因此本文只對重點細節做講解最後,定義一個方法,讓vba調用。如下圖:這個方法的上方套上一個 xlwings 的裝飾器 @xw.func。表示這個方法需要註冊到 Vba 模塊中。
  • vba第十八課
    vba第十八課調用工作表函數在vba中我經常會對工作表的數據進行一些運算,雖然通過代碼進行循環或判斷也可以完成,但是通vba調用函數可以更簡單更直接進行運算提高代碼的運行效率,比如countif、sumif等需要進行判斷統計和求和的運算。
  • vba編程,如何找出計算機ID,磁碟空間信息,一個函數的事情
    NO.1vba編程中,有時候需要獲取計算機系統信息,比如計算機名稱、ID、磁碟容量、磁碟類型等等,那麼如何來實現這個功能呢?下面講一下,關於獲取本地信息的一個簡單方法。redirectedfrom=MSDNNO.2本節內容相對比較難,需要掌握的知識有一些深度,其代碼可能不是十分好理解。如果只是拿來用一下,直接用就可以,如果要更多地掌握其核心內容,可能要花費不少時間,而且還必須對作業系統有一個十分熟悉的認識。
  • VBA代碼大全030:用vba強制關閉word應用程式
    這時候一般的套路都是在excel vba中創建word應用程式實例,然後一番操作以後關閉word應用程式。 這裡介紹一段代碼放在上面的結構的最後,可以強制的關閉任何存在的word.exe進程,從而掃清障礙。
  • 常用VB.NET字符串函數詳介
    常用VB.NET字符串函數詳介 這裡簡單的介紹了VB.NET字符串函數Val() 、Str$() 、Left$() 、Right$() 、Ltrim$() 、Rtrim$() 、Trim$() 、Asc() 、Chr$() 。
  • VBA代碼大全010:用vba遍歷文件夾及其子文件夾內的文件
    vba老手都知道,vba寫多了,其實都是在做循環。循環處理多個單元格的內容,循環處理多個工作表的內容,循環處理多個工作簿的內容。
  • VB\VBA\VBS中的if語句以及多重and和or條件用法
    本例所舉例子均在vba代碼窗口中測試過需要的話可以直接複製代碼測試Sub If語句用法()a = Int(Rnd() * 51 + 50) '隨機生成50-100的整數MsgBox
  • VBA基礎概念-對象、屬性、方法
    '例如range("A1:A4").ClearContents ,清除A1:A4的內容'例如常用的copy複製、select選中,save保存,close關閉等方法'常用的對象'aplication對象:最外層的vba
  • Excel VBA入門教程1.1 數據和數據類型
    1 語法說明都知道學會了英語語法,再加上大量的詞彙基礎,就算基本掌握了英語了。
  • VBA函數,看完就懂了(一)!
    在這些函數類別中,我將分為兩篇文章介紹。在本篇文章中,我將給大家介紹前4種函數類別。vbLowerCase:將字符串文字轉成小寫。vbProperCase:將字符串中每個字的開頭字母轉成大寫。vbWide:將字符串中單字節字符轉成雙字節字符。vbNarrow:將字符串中雙字節字符轉成單字節字符。vbKatakana:將字符串中平假名字符轉成片假名字符。