Excel的VBA現在還算是辦公利器嗎?
我說VBA過氣了,相信會有很多人會開始對我口誅筆伐。VBA曾經確實輝煌過,要知道十幾年前就連AutoCAD、CorelDRAW也一度非常支持VBA宏,后來AutoCAD回歸到了Lisp的懷抱中,CorelDRAW也認清了要平面設計師寫宏命令是一個非常不切實際的奢望。
VBA的老大哥VB已死,而小弟Small Basic只能堪當玩具肩負教育的責任,從Small Basic首頁奇葩“SB”字樣的烏龜人標識就可以看出它注定不能成為一個生產工具。Office Scripts才是微軟所看好的未來,而VBA僅允許茍活。在Office Scripts還沒有支持桌面版的Excel的情況下,放棄VBA直接改用Python無疑是更好的選擇,學成之后還能從一個會寫宏命令的屌絲搖身一變成為一個“大數據工程師”。VBA在Excel里的作用VBA是一種宏,但宏未必就一定是VBA。宏源于“marco”,是一種批處理的稱謂,指將小命令、動作轉換為一系列的指令。VBA可以減少Excel很多重復性的工作,讓Excel簡易化、自動化、智能化,這樣Excel就可以完成它自身功能無法完成的復雜的任務。VBA是基于Visual Basic(VB)發展而來,VBA是VB的子集,所以它們具有相似的語言結構。VBA的出現主要是用來擴展Windows自帶軟件的功能,特別是Office軟件。1994年集成了VBA宏命令的Excel 5.0發布之后,Office起飛了,可以說Office之所以能夠占據這么大市場份額很大一部分原因在于VBA,有了VBA之后Office能做的事情就多得多了,對于很多使用Word、Power Point、Excel的人來說,掌握了VBA就可以讓復雜的工作變得簡單,也可以減少很多不必要的重復性工作,大大提高工作的效率,所以就有人很形象的將VBA比作Excel的“遙控器”。在互聯網時代到來之前VB依靠著“所見即所得”的開發環境成為了一款巔峰時期擁有300萬開發者的熱門桌面開發工具,和Windows的強強聯合使得VB很長一段時間都對競爭對手保持壓制的態勢。但互聯網時代到來Java等語言開始興起,VB的優勢逐漸喪失,于是微軟推出了.NET并發布了.NET版的VB、C#,C#逐漸取代VB,導致最后很難找到VB源碼示例。最終微軟在2017年宣布VB終結的命運,既然老大哥倒下了,可想而知VBA的命運也不會好到哪里去,在程序員的鄙視鏈中“匯編>C>C++>Python>Java、C#、PHP>VB>HTML”甚至都找到VBA的身影。Python為什么比VBA香?VBA在過去確實很香,有特有的錄制宏功能,可以和Office完美的結合,擁有完整集成的開發環境,語法成熟固定沒有開源語言的升級煩惱,另外它也沒有碰到過強大的競爭對手。但有了Python、C#、Java做對比之后就發現VBA的語法功能單一、代碼量大,可擴展性很長。尤其是涉及到操作Excel外的對象,就需要寫非常多的代碼了。Excel使用Python之后可以享用Python生態系統下面的一切工具,尤其是數據處理這塊。比如可以用Pandas數據套件來處理Excel,可以在任何你喜歡的編輯器里寫Python腳本,記事本都行,這樣我們就再不用碰陳年難搞的VBA編輯器。Python的宏腳本可以版控、集中整理,而不會隨著Excel文檔散落在其他地方,Python腳本還可以透過xlwings調用Excel公式。總結VBA到如今依然算是辦公利器,也依然有很多人在使用VBA。VBA確實過氣了,Python確實是比VBA要強大太多,效率也更高一些。但有句古話“殺雞焉用牛刀”,僅僅如果只有幾千行數據,還要搭個Python環境就顯得有些過了。以上個人淺見,歡迎批評指正。認同我的看法,請點個贊再走,感謝!喜歡我的,請關注我,再次感謝!