俞木發(fā)
在Word中我們可以對(duì)選擇的文本設(shè)置字體隱藏效果,這樣在文檔窗口中就不會(huì)顯示指定的內(nèi)容,并且可以通過(guò)“審閱”組件對(duì)文檔進(jìn)行保護(hù),這樣又可以阻止閱讀的用戶手動(dòng)取消隱藏效果。這些操作均可以通過(guò)VBA腳本自動(dòng)完成,并且在VBA中可以通過(guò)“If Now()”語(yǔ)句對(duì)執(zhí)行操作的時(shí)間進(jìn)行設(shè)定。因此,我們通過(guò)“VBA腳本進(jìn)行時(shí)間判斷→添加隱藏字體代碼→添加文檔保護(hù)密碼”的一系列步驟,就可以實(shí)現(xiàn)文檔定時(shí)“銷毀”且用戶無(wú)法取消隱藏的效果。具體流程如圖所示(圖2)。
從圖2的流程介紹可以看到關(guān)鍵操作是添加字體隱藏效果和添加保護(hù),為了方便大家對(duì)這兩個(gè)操作有更直觀的理解,我們可以先在Word中手動(dòng)進(jìn)行操作預(yù)覽。
在Word中打開(kāi)需要處理的文檔,選中需要隱藏的內(nèi)容,按下“Ctrl+D”快捷鍵調(diào)出字體設(shè)置窗口,按提示勾選“效果”選項(xiàng)下的“隱藏”,這樣選擇的文本內(nèi)容就會(huì)自動(dòng)消失了(圖3)。這就相當(dāng)于將文檔字體的顯示屬性設(shè)置為“隱藏”,在文檔中就不會(huì)顯示隱藏的文本了。
繼續(xù)依次點(diǎn)擊“審閱→保護(hù)→限制編輯”菜單選項(xiàng),接著在右側(cè)打開(kāi)的限制編輯窗格中操作:在“1.格式化限制”下勾選“限制對(duì)選定的樣式設(shè)置格式”;在“2.編輯限制”下勾選“僅允許在文檔中進(jìn)行此類型的編輯:”,在下面的下拉列表中選擇“填寫(xiě)窗體”;然后點(diǎn)擊下方的“是,啟動(dòng)強(qiáng)制保護(hù)”,最后按提示設(shè)置保護(hù)密碼(圖4)。這樣不輸入密碼,用戶就無(wú)法打開(kāi)圖3所示窗口取消“隱藏”的勾選。
上述手動(dòng)操作的目的是為了向大家展示最終隱藏的效果。為了可以實(shí)現(xiàn)定期銷毀文檔,我們需要利用VBA,按照?qǐng)D2的提示,添加對(duì)應(yīng)的代碼操作即可(代碼可到“https:fishare.weiyun.com/TfHt6xx8”下載)。
返回Word文檔窗口,手動(dòng)取消文檔保護(hù)和隱藏效果,然后按下“Alt+F11”快捷鍵打開(kāi)VBA編輯窗口,在左側(cè)的窗格中依次展開(kāi)“Proiect(當(dāng)前文檔名稱)→Microsoft Word對(duì)象→ThisDocument”,雙擊“ThisDocument”并在右側(cè)打開(kāi)的代碼窗格中粘貼上述的代碼(圖5)。
主要代碼解釋:
If Now()>=DateSerial("2021","04","01"):表示使用IF語(yǔ)句將當(dāng)前日期和2021.04.01進(jìn)行比較,如大于這個(gè)時(shí)間則執(zhí)行下面的操作。在實(shí)際使用中請(qǐng)自行更改日期。
MsgBox“產(chǎn)品報(bào)價(jià)已過(guò)期”:表示如果當(dāng)前日期大于2021.04.01,則彈出提示框顯示“”產(chǎn)品報(bào)價(jià)已過(guò)期”。
Selection Font Hidden=True:將選擇內(nèi)容字體的效果設(shè)置為隱藏,即自動(dòng)執(zhí)行圖3所示的操作(不同的是代碼默認(rèn)全選文檔的內(nèi)容)。
Protect wdAllowOnlyFormFields,True,"123":表示將文檔的編輯權(quán)限設(shè)置為“wdAllowOnlyFormFields”,即自動(dòng)執(zhí)行圖4所示的操作,同時(shí)將保護(hù)密碼設(shè)置為“123”。
完成代碼的粘貼后,在左側(cè)的窗格內(nèi)選中“ThisDocument”并右擊,然后選擇“Project屬性”,在打開(kāi)的工程屬性窗口中切換到“保護(hù)”選項(xiàng)卡,按提示設(shè)置密碼。這個(gè)密碼用來(lái)防止用戶查看VBA代碼,從而知道隱藏的原理和查看解鎖編輯的密碼(圖6)。
完成上述的設(shè)置后,將文檔保存為“啟用宏的Word文檔(*.docm)”,然后就可以發(fā)給各個(gè)業(yè)務(wù)部門(mén)了。當(dāng)使用者每次打開(kāi)這個(gè)文檔后,后臺(tái)的VBA腳本都會(huì)自動(dòng)將打開(kāi)文檔時(shí)的日期和2021.04.01進(jìn)行比較,如果日期小于該日期,文檔查看是正常的;如果日期大于該日期(比如2021.04.02打開(kāi)文檔),那么打開(kāi)該文檔后會(huì)彈出“產(chǎn)品報(bào)價(jià)已過(guò)期”的提示框(圖7)。
用戶點(diǎn)擊消息框中的“確定”按鈕后,后臺(tái)腳本便會(huì)自動(dòng)將文檔內(nèi)容的字體全部設(shè)置為“隱藏”,用戶完全看不到文檔的內(nèi)容,同時(shí)也無(wú)法對(duì)文檔進(jìn)行任何編輯(當(dāng)然也無(wú)法執(zhí)行圖3窗口所示的取消“隱藏”效果前的勾選)(圖8)。