小男孩‘自慰网亚洲一区二区,亚洲一级在线播放毛片,亚洲中文字幕av每天更新,黄aⅴ永久免费无码,91成人午夜在线精品,色网站免费在线观看,亚洲欧洲wwwww在线观看

分享

強(qiáng)制用戶啟用宏 - 126的日志 - 網(wǎng)易博客

 52EXCEL 2011-03-28

引子:好久沒(méi)有更新博客了,特別是沒(méi)有更新關(guān)于VBA方面的內(nèi)容了,不是不想,是有太多的事要做了。但我想忙不是理由,因此以后還是要更勤勞一點(diǎn),在博客中多分享一些有用的知識(shí)。
為了防止宏病毒對(duì)用戶的文檔產(chǎn)生危害,Microsoft為Office應(yīng)用程序創(chuàng)建了一個(gè)安全模型,能夠使用戶選擇禁用宏,以作為一個(gè)防護(hù)措施。雖然這能夠在一定程序上防止宏病毒,但同時(shí)也帶來(lái)了副作用,因?yàn)橛泻芏辔臋n中的許多功能依賴于用戶已經(jīng)實(shí)現(xiàn)的宏,如果禁用宏,那么這些功能就不可用。這個(gè)問(wèn)題也一直困擾著許多VBA開發(fā)人員,因?yàn)樗麄冮_發(fā)的功能發(fā)送給用戶時(shí),如果用戶禁用宏或者將宏安全級(jí)別設(shè)置為高以上,就意味著用戶無(wú)法使用他們的功能,特別是那些對(duì)宏一無(wú)所知的用戶。因此,很多人問(wèn):有沒(méi)有辦法能夠去掉打開帶有宏的文檔時(shí)出現(xiàn)的警告消息而直接啟用宏。
下面是一個(gè)技巧,看了之后覺(jué)得很有意思,特輯錄于此。這個(gè)技巧并不能夠去掉是否關(guān)于宏的安全警告消息,但能夠提示用戶,如果不啟用宏,那么就不能夠使用該工作簿。這個(gè)提示信息是通過(guò)事先在工作簿中創(chuàng)建的一個(gè)默認(rèn)工作表(即名為“啟用宏”的工作表)來(lái)實(shí)現(xiàn)的。

代碼如下:

Sub AskUserEnabledMacros()
                Dim wksInfoSheet As Worksheet
                Dim objSheet As Object
                 
                On Error Resume Next
                 
                '引用<啟用宏>工作表并判斷其是否存在
                    Set wksInfoSheet = ThisWorkbook.Worksheets("啟用宏")
                If wksInfoSheet Is Nothing Then
                MsgBox "不能夠找到<啟用宏>工作表", vbCritical
                Exit Sub
                End If
                 
                '關(guān)閉屏幕更新
                    Application.ScreenUpdating = False
                 
                '遍歷工作簿中的所有工作表并設(shè)置所有工作表可見(jiàn)
                    For Each objSheet In ThisWorkbook.Sheets
                objSheet.Visible = xlSheetVisible
                Next objSheet
                 
                '隱藏<啟用宏>工作表
                    wksInfoSheet.Visible = xlSheetVeryHidden
                 
                '保存工作簿
                    ThisWorkbook.Saved = True
                 
                '恢復(fù)屏幕更新
                    Application.ScreenUpdating = True
                End Sub
                 
                '隱藏除<啟用宏>工作表之外的所有工作表
                Sub RunOnClose()
                Dim wksInfoSheet As Worksheet
                Dim objSheet As Object
                 
                On Error Resume Next
                 
                '引用<啟用宏>工作表并判斷其是否存在
                    Set wksInfoSheet = ThisWorkbook.Worksheets("啟用宏")
                If wksInfoSheet Is Nothing Then
                MsgBox "不能夠找到<啟用宏>工作表", vbCritical
                Exit Sub
                End If
                 
                '關(guān)閉屏幕更新
                    Application.ScreenUpdating = False
                 
                '顯示<啟用宏>工作表
                    wksInfoSheet.Visible = xlSheetVisible
                 
                '隱藏其他工作表
                    For Each objSheet In ThisWorkbook.Sheets
                If Not objSheet Is wksInfoSheet Then
                objSheet.Visible = xlSheetVeryHidden
                End If
                Next objSheet
                 
                '保存工作簿
                    ThisWorkbook.Save
                End Sub
                 
                Sub auto_open()
                '當(dāng)工作簿打開時(shí)運(yùn)行AskUserEnabledMacros過(guò)程
                    AskUserEnabledMacros
                End Sub
                 
                Sub auto_close()
                '隱藏除<啟用宏>工作表之外的所有工作表
                    RunOnClose
                End Sub

打開該工作簿時(shí),如果禁用宏,那么就只出現(xiàn)“啟用宏”工作表,提示用戶只有啟用宏才能夠使用該工作簿。如果啟用宏,那么就會(huì)出現(xiàn)具體的工作表。

http://www./2010/05/06/askuserenablemacros/



 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多