正在閱讀:

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

掃一掃下載界面新聞APP

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

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

文|三易生活

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

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

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

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

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

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

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

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

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

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

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

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

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

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

評(píng)論

暫無(wú)評(píng)論哦,快來(lái)評(píng)價(jià)一下吧!

下載界面新聞

微信公眾號(hào)

微博

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

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

文|三易生活

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

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

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

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

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

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

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

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

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

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

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

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

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

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