返回列表 上一主題 發帖

一個保護問題,

本帖最後由 GBKEE 於 2010-12-9 20:18 編輯

回復 10# 317
你這圖片2是專案設定密碼用的,必需用手動的,無法用vba操作的
Sheets("資料頁").Protect Password:="1234", DrawingObjects:=True, Contents:=True, Scenarios:=True
上式是檔案中 工作表名為"資料頁"的設定保護的程式碼,且設立密碼為"1234"
先前告訴你將資料頁的字體顏色與儲存格的底色 顏色設為同樣顏色.
如關閉檔案時 執行此程式碼, 可預防再度開啟檔案, 如停用巨集時且資料頁沒隱藏.將不會暴露資料頁的內容

TOP

GBKEE大大:好
明白了, 在這個發問流程中,
GBKEE
hsieh
两位大大給予小妹寶貴的指導, 衷心感謝!!,
最後, 祝願快樂,健康....

TOP

我在想.....
樓主會隱藏工作表,應該不只是想保護工作表,而是想...保密
如果,只針對工作表設密碼保護,應該是沒什麼作用
我想...只要一個簡單的"等於的公式"就能窺視「資料頁」的內容了~

TOP

回復 13# solely
大大好,
小妹有一Excel檔案室,而在公司中有3位同事使用, 此檔案用密碼登入開啟, 而vba保護專密碼保護, 當然這並非高度的機密, 但當中資料也不想隨意給人看, 一直沒有事情發生,
一天, 公司中來了位新同事, 公司配給了他新電腦, 而新腦中新同事未啟用巨集, 他隨意開啟此檔案, 發問了小妹負責的資料, 這令我吃驚, 這才知道所有涉入程式密碼保護的Excel檔案,
在停用巨集的情況下, 等於沒有保護, 任何人都可以隨意看, 於是在此討論區中請教各大大, 看可有辦法彌補此缺點, 而hsieh及GBKEE两位大大給予指導,
檔案總算於停用巨集時開啟,閒家是看不到資料, 當然如果是當中高手,哪還是徒奈何, 但假若文件是高度機密的話,公司自會請專入設法保護, 我等這些行政小文員, 不過是保護小小資料吧..

TOP

本帖最後由 GBKEE 於 2010-12-24 21:28 編輯

回復 14# 317
活頁簿設立開啟密碼,旁人無法開啟.

TOP

謝謝大大.
小妹感謝指導, 祝願快樂.

TOP

GBKEE大大,
上述所提及的保護方式, 大大可否做一範例檔, 給予我等程度低而就想從中學習的門生參考,
感恩..

TOP

回復 17# 周大偉
如下圖 選取後 輸入密碼即可

TOP

大大,
先行謝過, 大大給予教導, 是一般選項中設立密碼, 而小弟所想向大大學習的便是把儲存格字體設定與儲存格相同色, 再加上密碼設定為1234程式範例, 曾與友好討論, 但沒有得到結果, 故請大大指導, 希望大大給予一範例. 好讓從中學習, 先謝過大大, 聖誕快樂..

TOP

回復 19# 周大偉
1.將程式碼貼於 ThisWorkbook,  專案的屬性->保護  勾選鎖定專案, 輸入密碼
2.活頁簿另存檔案指令 -> 工具-> 一般選項  輸入活頁簿保護密碼
  1. Option Explicit
  2. Private Const 密碼 = "1234"
  3. Private Const 字體顏色 = 1
  4. Private Const 保護色 = 2    '可自行修改
  5. Dim Answer$
  6. Private Sub Workbook_Open()
  7.     Sheets_Protect
  8.     Answer_Pass
  9. End Sub
  10. Private Sub Workbook_BeforeClose(Cancel As Boolean)
  11.     Sheets_Protect
  12.     Save
  13. End Sub
  14. Private Sub Workbook_SheetActivate(ByVal Sh As Object)
  15.     Answer_Pass
  16. End Sub
  17. Private Sub Workbook_SheetDeactivate(ByVal Sh As Object)
  18.      My_UnProtect (IIf(Answer = 密碼, True, False))
  19. End Sub
  20. Private Sub Sheets_Protect()
  21.     Dim Sh As Worksheet
  22.     For Each Sh In Sheets
  23.         With Sh
  24.         .Unprotect 密碼
  25.         .Cells.Font.ColorIndex = 保護色
  26.         .Cells.Interior.ColorIndex = .Cells.Font.ColorIndex
  27.         .EnableSelection = xlNoSelection
  28.         .Protect PassWord:=密碼, DrawingObjects:=True
  29.         End With
  30.     Next
  31. End Sub
  32. Private Sub My_UnProtect(Y As Boolean)
  33.     Application.ScreenUpdating = False
  34.     With ActiveSheet
  35.         .Unprotect 密碼
  36.         If Y = True Then
  37.             .Cells.Font.ColorIndex = 字體顏色
  38.             .Cells.Interior.ColorIndex = xlNone
  39.             Application.CommandBars.FindControl(ID:=30029).Enabled = True
  40.         Else
  41.             .Cells.Font.ColorIndex = 保護色
  42.             .Cells.Interior.ColorIndex = .Cells.Font.ColorIndex
  43.             .EnableSelection = xlNoSelection
  44.             .Protect PassWord:=密碼, DrawingObjects:=True
  45.             Application.CommandBars.FindControl(ID:=30029).Enabled = False
  46.         End If
  47.     End With
  48.     Application.ScreenUpdating = True
  49. End Sub
  50. Private Sub Answer_Pass()
  51.     If Answer <> 密碼 Then
  52.         If InputBox("密碼??", "輸入密碼") = 密碼 Then Answer = 密碼
  53.     End If
  54.     My_UnProtect (IIf(Answer = 密碼, True, False))
  55. End Sub
複製代碼

TOP

        靜思自在 : 話多不如話少,話少不如話好。
返回列表 上一主題