正在閱讀:

微軟低頭,讓Office更好用的VBA宏不再默認(rèn)禁用了

掃一掃下載界面新聞APP

微軟低頭,讓Office更好用的VBA宏不再默認(rèn)禁用了

日前微軟方面表示,根據(jù)用戶反饋、將取消這一改動,不再禁用Office的VBA宏。

文|三易生活

微軟的Office全家桶毫無疑問是目前為止辦公領(lǐng)域應(yīng)用最為廣泛的軟件,同時也是職場人最為熟悉的“武器”,因此也使得Office的“風(fēng)吹草動”也受到了外界的眾多關(guān)注。而此前在今年年初,Offce生態(tài)迎來了一次巨大的變化,當(dāng)時微軟方面宣布為了打擊勒索軟件及其他惡意軟件,將默認(rèn)禁止Office從外部獲取的VBA宏。

彼時微軟方面表示,這一變化將適用于從互聯(lián)網(wǎng)上下載并包含VBA宏的Office文件,其中包括Access、Excel、PowerPoint、Visio和Word五款軟件,并會自6月開始向Microsoft Office2013以上版本的所有用戶推出。在啟用VBA宏自動屏蔽的Office版本上,用戶會看到“微軟已阻止宏運(yùn)行,因為此文件的來源不受信任”的安全警告。

但就在半年后,微軟卻“后悔”了。日前微軟方面表示,根據(jù)用戶反饋、將取消這一改動,不再禁用Office的VBA宏。

要知道當(dāng)初宣布將默認(rèn)禁止VBA宏時,微軟首席項目經(jīng)理Kellie Eickmeyer是這樣說的,用戶只要點擊一個按鈕就能執(zhí)行宏,黑客則經(jīng)常會發(fā)送內(nèi)置宏的Office文件給用戶,而在不經(jīng)意激活宏后,系統(tǒng)就會被加載各種惡意內(nèi)容。

其實,VBA也就是Visual Basic for Applications,是微軟方面在1993年基于可視化程序設(shè)計語言Visual Basic打造的宏語言。但VBA與傳統(tǒng)的宏語言不同,傳統(tǒng)的宏語言不具備高級語言的特征,沒有面向?qū)ο蟮某绦蛟O(shè)計概念和方法,而VBA則提供了面向?qū)ο蟮某绦蛟O(shè)計方法,并提供了完整的程序設(shè)計語言機(jī)制。

一直以來,在程序員社區(qū)里關(guān)于編程語言誰更優(yōu)秀的爭論,就從未沒有停止過,諸如“PHP是最好的編程語言”、“千年的編程,萬年的C”這類也十分常見,不過要說到最不受程序員歡迎的編程語言,則或許莫過于微軟的VisualBasic。沒錯,無論是被吐槽為難以閱讀、維護(hù)的Perl,還是功能豐富到混亂的C++,都沒有VisualBasic更讓程序員反感。而在1998年微軟方面不再為VisualBasic提供正式支持后,VBA就取代了VB,成為當(dāng)下程序員最討厭的編程語言了。

程序員們討厭VBA是因為它太簡單,你沒看錯,VBA的使用門檻低正是它被厭惡的原因。VBA作為VB的子集,延續(xù)了后者“所見即所得”的開發(fā)環(huán)境,同時,VBA采用了解釋機(jī)制,而且提供了強(qiáng)大的逐句解釋功能,所以運(yùn)行時不需要編譯和鏈接。這意味著,不需要經(jīng)過專業(yè)化的計算機(jī)科學(xué)學(xué)習(xí),只有一定的邏輯思維能力和對編程有一些認(rèn)識,幾天之后就能寫出一個像模像樣的VBA程序。

不需要高深的編程知識和專業(yè)的程序員,每個人都可以寫VBA代碼,這在上世紀(jì)90年代到本世紀(jì)初無疑是一個非常有吸引力的特質(zhì)。然而,這也代表了一直到今天為止,許多公司使用的VBA程序依然是由二三十年前的非程序員寫的。在今天的程序員來說,VBA這種非現(xiàn)代編程語言自然是備受嫌棄了。

更為重要的是,VBA的安全性也很糟糕。所謂“宏”,指的是用戶對規(guī)則或模式進(jìn)行預(yù)定義的一系列具體操作,VBA宏的特質(zhì)就是開啟后,會高效地進(jìn)行大批量處理程序編寫者預(yù)先定義的命令,即便VBA宏包含宏病毒等惡意程序也會自動執(zhí)行。為了避免這類情況,微軟在Office套件的安全級別選項卡中,就提供了宏安全性的設(shè)置。

但問題是,由于微軟的設(shè)計導(dǎo)致了如果宏安全性太高,就會無法運(yùn)行VBA代碼。通常,網(wǎng)絡(luò)中的各種教程都會推薦用戶將宏安全性設(shè)置為“中”或者“低”,而不是“高”和“非常高”。但用戶如果為了方便而降低安全性,就給了宏病毒一展身手的機(jī)會。盡管對此微軟方面并非無動于衷,也提供了查毒器來為用戶提供檢查VBA宏是否安全,但由于Office用戶的特質(zhì),就決定了這一努力幾乎是無謂的。

最終,微軟選擇了直接禁用VBA宏這樣一刀切的做法。然而VBA宏能夠經(jīng)歷二十余年技術(shù)迭代的洗禮,靠的就是自身是Office生態(tài)中實現(xiàn)辦公自動化的唯一工具。VBA宏可以減少Office中很多重復(fù)性的工作,甚至于完成Office自身功能無法實現(xiàn)的復(fù)雜任務(wù)。比如批量排版Word/PPT文件、從Word文檔中抽取關(guān)鍵信息、實現(xiàn)自動批量打印、抓取網(wǎng)頁數(shù)據(jù),以及對接外部數(shù)據(jù)庫等等。

當(dāng)然,想要實現(xiàn)辦公自動化,VBA確實并非唯一的選擇,幾年前就曾刮過一陣用Python取代VBA的“風(fēng)”,但最終VBA也沒能被取代。Python的語法、對諸多接口的支持,使得其編碼和性能都獨樹一幟,但Python需要配置開發(fā)環(huán)境、且需要更高階的計算機(jī)編程知識,就決定了它較高的門檻,而VBA的低門檻和易用性則更滿足絕大多數(shù)商業(yè)公司的需要。

所以在Office中沒有比VBA更強(qiáng)大、又易學(xué)的編程語言,也沒有比VBA宏更加簡單高效工具的情況下,這就是Office用戶一致反對微軟此舉的關(guān)鍵所在了。

本文為轉(zhuǎn)載內(nèi)容,授權(quán)事宜請聯(lián)系原著作權(quán)人。

評論

暫無評論哦,快來評價一下吧!

下載界面新聞

微信公眾號

微博

微軟低頭,讓Office更好用的VBA宏不再默認(rèn)禁用了

日前微軟方面表示,根據(jù)用戶反饋、將取消這一改動,不再禁用Office的VBA宏。

文|三易生活

微軟的Office全家桶毫無疑問是目前為止辦公領(lǐng)域應(yīng)用最為廣泛的軟件,同時也是職場人最為熟悉的“武器”,因此也使得Office的“風(fēng)吹草動”也受到了外界的眾多關(guān)注。而此前在今年年初,Offce生態(tài)迎來了一次巨大的變化,當(dāng)時微軟方面宣布為了打擊勒索軟件及其他惡意軟件,將默認(rèn)禁止Office從外部獲取的VBA宏。

彼時微軟方面表示,這一變化將適用于從互聯(lián)網(wǎng)上下載并包含VBA宏的Office文件,其中包括Access、Excel、PowerPoint、Visio和Word五款軟件,并會自6月開始向Microsoft Office2013以上版本的所有用戶推出。在啟用VBA宏自動屏蔽的Office版本上,用戶會看到“微軟已阻止宏運(yùn)行,因為此文件的來源不受信任”的安全警告。

但就在半年后,微軟卻“后悔”了。日前微軟方面表示,根據(jù)用戶反饋、將取消這一改動,不再禁用Office的VBA宏。

要知道當(dāng)初宣布將默認(rèn)禁止VBA宏時,微軟首席項目經(jīng)理Kellie Eickmeyer是這樣說的,用戶只要點擊一個按鈕就能執(zhí)行宏,黑客則經(jīng)常會發(fā)送內(nèi)置宏的Office文件給用戶,而在不經(jīng)意激活宏后,系統(tǒng)就會被加載各種惡意內(nèi)容。

其實,VBA也就是Visual Basic for Applications,是微軟方面在1993年基于可視化程序設(shè)計語言Visual Basic打造的宏語言。但VBA與傳統(tǒng)的宏語言不同,傳統(tǒng)的宏語言不具備高級語言的特征,沒有面向?qū)ο蟮某绦蛟O(shè)計概念和方法,而VBA則提供了面向?qū)ο蟮某绦蛟O(shè)計方法,并提供了完整的程序設(shè)計語言機(jī)制。

一直以來,在程序員社區(qū)里關(guān)于編程語言誰更優(yōu)秀的爭論,就從未沒有停止過,諸如“PHP是最好的編程語言”、“千年的編程,萬年的C”這類也十分常見,不過要說到最不受程序員歡迎的編程語言,則或許莫過于微軟的VisualBasic。沒錯,無論是被吐槽為難以閱讀、維護(hù)的Perl,還是功能豐富到混亂的C++,都沒有VisualBasic更讓程序員反感。而在1998年微軟方面不再為VisualBasic提供正式支持后,VBA就取代了VB,成為當(dāng)下程序員最討厭的編程語言了。

程序員們討厭VBA是因為它太簡單,你沒看錯,VBA的使用門檻低正是它被厭惡的原因。VBA作為VB的子集,延續(xù)了后者“所見即所得”的開發(fā)環(huán)境,同時,VBA采用了解釋機(jī)制,而且提供了強(qiáng)大的逐句解釋功能,所以運(yùn)行時不需要編譯和鏈接。這意味著,不需要經(jīng)過專業(yè)化的計算機(jī)科學(xué)學(xué)習(xí),只有一定的邏輯思維能力和對編程有一些認(rèn)識,幾天之后就能寫出一個像模像樣的VBA程序。

不需要高深的編程知識和專業(yè)的程序員,每個人都可以寫VBA代碼,這在上世紀(jì)90年代到本世紀(jì)初無疑是一個非常有吸引力的特質(zhì)。然而,這也代表了一直到今天為止,許多公司使用的VBA程序依然是由二三十年前的非程序員寫的。在今天的程序員來說,VBA這種非現(xiàn)代編程語言自然是備受嫌棄了。

更為重要的是,VBA的安全性也很糟糕。所謂“宏”,指的是用戶對規(guī)則或模式進(jìn)行預(yù)定義的一系列具體操作,VBA宏的特質(zhì)就是開啟后,會高效地進(jìn)行大批量處理程序編寫者預(yù)先定義的命令,即便VBA宏包含宏病毒等惡意程序也會自動執(zhí)行。為了避免這類情況,微軟在Office套件的安全級別選項卡中,就提供了宏安全性的設(shè)置。

但問題是,由于微軟的設(shè)計導(dǎo)致了如果宏安全性太高,就會無法運(yùn)行VBA代碼。通常,網(wǎng)絡(luò)中的各種教程都會推薦用戶將宏安全性設(shè)置為“中”或者“低”,而不是“高”和“非常高”。但用戶如果為了方便而降低安全性,就給了宏病毒一展身手的機(jī)會。盡管對此微軟方面并非無動于衷,也提供了查毒器來為用戶提供檢查VBA宏是否安全,但由于Office用戶的特質(zhì),就決定了這一努力幾乎是無謂的。

最終,微軟選擇了直接禁用VBA宏這樣一刀切的做法。然而VBA宏能夠經(jīng)歷二十余年技術(shù)迭代的洗禮,靠的就是自身是Office生態(tài)中實現(xiàn)辦公自動化的唯一工具。VBA宏可以減少Office中很多重復(fù)性的工作,甚至于完成Office自身功能無法實現(xiàn)的復(fù)雜任務(wù)。比如批量排版Word/PPT文件、從Word文檔中抽取關(guān)鍵信息、實現(xiàn)自動批量打印、抓取網(wǎng)頁數(shù)據(jù),以及對接外部數(shù)據(jù)庫等等。

當(dāng)然,想要實現(xiàn)辦公自動化,VBA確實并非唯一的選擇,幾年前就曾刮過一陣用Python取代VBA的“風(fēng)”,但最終VBA也沒能被取代。Python的語法、對諸多接口的支持,使得其編碼和性能都獨樹一幟,但Python需要配置開發(fā)環(huán)境、且需要更高階的計算機(jī)編程知識,就決定了它較高的門檻,而VBA的低門檻和易用性則更滿足絕大多數(shù)商業(yè)公司的需要。

所以在Office中沒有比VBA更強(qiáng)大、又易學(xué)的編程語言,也沒有比VBA宏更加簡單高效工具的情況下,這就是Office用戶一致反對微軟此舉的關(guān)鍵所在了。

本文為轉(zhuǎn)載內(nèi)容,授權(quán)事宜請聯(lián)系原著作權(quán)人。