宏是通過一次單擊就可以應用的命令集。它們幾乎可以自動完成你在程序中執行的任何操作,甚至還可以執行你認為不可能的任務。
宏是編程,但即使你不是開發人員也可以使用它們,甚至不需要知道任何編程知識。在Office程序中可以創建的多數宏都是用Microsoft VBA (Visual Basic for Applications)語言編寫的。
事實上,盡管多數宏是無害而且有益的,但宏是一個重要的安全問題。如果有人抱著惡意目的創建宏,這些宏可能包含損害你的文檔或系統的破壞性代碼。
對於Open XML支持的文檔而言,凡是包含宏或代碼的文檔都會以特殊的名稱保存,如Word文檔的後綴名是docm,Excel工作簿的後綴名是xlsm,PPT演示文稿的後綴名是PPTm,其中的字母“m”就代表了Macro(宏),這樣你可以很清楚地識別到當前的文檔中是否有宏的存在。
另外,在默認情況下,新的Open XML文件格式不執行文檔中的宏和嵌入代碼,還可以快速識別和刪除文檔中帶有的身份信息和敏感信息,如用戶名、備注和文件路徑等。因此,以Open XML格式保存的文檔將更加安全,可以放心地與他人進行文檔的共享。
以Word 2007為例,打開Word選項→信任中心→宏設置,可以看到關於宏設置的選項。如圖14-22所示。
圖14-22 宏安全設置
從圖14-22中可以看到,默認情況下會禁用所有宏,可以更改這一設置根據實際情況。
宏在Open XML包中作為一個二進制的OLE2文件存在指定的目錄中,一般情況下,遵守如下規則:
q Word: Word/vbaProject.bin
q Excel: xl/vbaProject.bin
q PowerpPoint: PPT/vbaProject.bin
遺憾的是,宏並沒有在Open XML的規范文檔中被提及,並且OLE2文件的格式也不是公開的。下篇博客來了解什麼是OLE,以及它和Office文檔的關系。