當(dāng)我們?cè)谔幚砘騻鬏?SPAN lang=EN-US>Excel電子表格的時(shí)候,如果涉及到比較重要的數(shù)據(jù),都會(huì)考慮到文檔的安全問題。 為此,我們可以使用單元格限制修改輸入、借用VBA加以限制用戶使用某種工具或菜單等。這一切,都是為了Excel電子表格的安全著想。 本文,給大家介紹一種更為安全的方法,那就是,Excel登陸機(jī)制的實(shí)現(xiàn)。意思就是說,當(dāng)我們雙擊Excel電子表格企圖打開的時(shí)候,會(huì)提示登陸,如果登陸成功,就能夠打開電子表格進(jìn)行各種操作,如果登陸失敗,那么,將無法成功打開Excel電子文檔。 我們先看下圖吧,最終的實(shí)現(xiàn)效果就是,當(dāng)我們雙擊Excel電子表格時(shí),會(huì)看到如下圖的登陸窗口。 填寫正確的用戶名和密碼之后,才能登陸成功。如果登陸成功,就可以對(duì)電子表格進(jìn)行日常的操作。否則,就只能點(diǎn)擊退出或關(guān)閉,從而就不能打開Excel電子表格了。 要想實(shí)現(xiàn)這樣的功能,有一定難度,但是,并非不可以實(shí)現(xiàn),借助工作表并配合簡(jiǎn)單的VBA代碼和用戶窗體就可以實(shí)現(xiàn)。 一、保存用戶名和密碼的工作表 要想實(shí)現(xiàn)登陸,那么,必須要有依據(jù),這個(gè)依據(jù)就是,我們將用戶名和密碼事先保存在EXCLE工作薄的某一個(gè)工作表中,登陸的時(shí)候,只需要判斷表格中是否有此用戶名和密碼即可。有則登陸成功,沒有則登陸失敗。 表格如上圖中的表,只要工作薄中的任意一個(gè)工作表,用來用戶名和密碼即可。如本例的工作表,名稱為 UserLoginInfor ,此表中有三列,第一列是保存登陸名稱,第二列保存對(duì)應(yīng)的登陸密碼,第三列保存用戶的級(jí)別。 根據(jù)上圖的表,自己建立一個(gè)這樣的工作表吧,接下來,就是用戶窗體和VBA的事了。 二、建立用戶窗體 所謂的用戶窗體,就是我們所看到的第一圖的登陸窗口,那個(gè)就是用戶窗體,在Excel中,我們必須插入這樣的一個(gè)窗體。方法如下。 右鍵點(diǎn)擊 UserLoginInfor 選擇“查看代碼”,如下圖。 然后,我們會(huì)看到所彈出的VBA窗口,在此窗口中,執(zhí)行菜單操作“插入”→“用戶窗體”,如下圖。 之后,我們就會(huì)看到如下圖的界面了。 上圖中,我們通過工具箱向窗體中插入兩個(gè)標(biāo)簽控件、兩個(gè)輸入框和兩個(gè)按鈕。兩個(gè)標(biāo)簽控件的Captiont屬性分別為“用戶名”和“密碼”,兩個(gè)輸入框則只調(diào)整大小即可。兩個(gè)按鈕的Caption分別設(shè)置為“登陸”和“退出”,如此如此,所有的前期準(zhǔn)備工作到此完成。 接下來,我們?cè)摻o窗體控件增加VBA代碼,以實(shí)現(xiàn)真正的登陸機(jī)制了。 三、登陸機(jī)制中所使用的VBA代碼 ①ThisWorkbook對(duì)象的代碼 右鍵點(diǎn)擊窗口中能夠看見的ThisWorkbook,選擇“查看代碼”,這樣,VBA代碼輸入小窗口就出現(xiàn)了。 接下來,如上圖一樣,選擇好對(duì)象名稱是Workbook,事件名稱是Open,然后,如上圖一樣,輸入VBA代碼即可。 ②窗體控件的VBA代碼 窗體的控件的VBA代碼,包括三類代碼。一是登陸按鈕的代碼;二是退出按鈕的代碼;三是點(diǎn)擊×關(guān)閉的代碼。 為方便大家的學(xué)習(xí),下面將這三類代碼粘貼如下: A、登陸按鈕的代碼 Dim MyLoginStatus As Single B、退出按鈕的VBA代碼 Application.Quit 注意,以上兩類代碼的輸入方法,直接點(diǎn)擊“登陸”和“退出”按鈕就可以進(jìn)入輸入模式,按照上面的代碼,原原本本的照著輸入就可以了。 C、×關(guān)閉的VBA代碼 此類代碼比較難以理解,下面直接將其事件及代碼完整粘貼如下: Private Sub UserForm_QueryClose(Cancel As Integer, CloseMode As Integer) 四、部分代碼說明 ThisWorkbook.Sheets("UserLoginInfor").Visible = True;顯示UserLoginInfor工作表 ThisWorkbook.Sheets("UserLoginInfor").Visible = False;隱藏UserLoginInfor工作表 為什么要顯示和隱藏這個(gè)工作表呢?因?yàn)椴煌娜说顷?SPAN lang=EN-US>EXCEL電子表格,權(quán)限是不一樣的,如果每個(gè)人登陸都能看到別人的用戶名和密碼,那人人都可以拿最高權(quán)限的登陸了,然后什么都可以做了。 我們的登陸機(jī)制是,只有最高權(quán)限的人登陸成功,才能看到UserLoginInfor工作表并修改這個(gè)工作表。而其它人即便登陸成功,這個(gè)表也不能看到,更不能修改了。 UserForm1.Hide;如果登陸成功,就把登陸窗體隱藏起來,這樣,才不會(huì)影響EXCEL工作表的操作。 |
|