插入一个用户窗体,添加一个文本框作为密码识别,一个命令按钮,当密码正确是执行你的宏命令,
在工作簿打开时添加以下代码
Private Sub Workbook_Open()
Sheet1.Cells.Font.Color = RGB(255, 255, 255)
UserForm1.Show
End Sub
这样,如果密码不正确,你的表的字体就是白色的,哈哈谁也看不到了
Private Declare Function ShowWindow Lib "user32" (ByVal hwnd As Long, ByVal nCmdShow As Long) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As
String) As Long
Private Declare Function GetWindow Lib "user32" (ByVal hwnd As Long, ByVal wCmd As Long) As Long
Private Declare Function GetWindowText Lib "user32" Alias "GetWindowTextA" (ByVal hwnd As Long, ByVal lpString As String,
ByVal cch As Long) As Long
Private Declare Function GetClassName Lib "user32" Alias "GetClassNameA" (ByVal hwnd As Long, ByVal lpClassName As String,
ByVal nMaxCount As Long) As Long
'\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
Private Sub Workbook_Open()
Dim h As Long
h = FindWindow("XLMAIN", vbNullString)
h = GetBookHandle(h, "隐藏工作薄")
ShowWindow h, 0 '隐藏
'ShowWindow h, 1 ' 显示
MsgBox ThisWorkbook.Name + "成功被隐藏了!"
End Sub
Function GetBookHandle(ph As Long, WinCaption As String) As Long
Dim StarCh As Long
Dim WinText As String * 255
WinText = ""
StarCh = GetWindow(ph, 5)
GetClassName StarCh, WinText, 255
Do
If Left(WinText, 6) = "XLDESK" Then Exit Do
WinText = ""
StarCh = GetWindow(StarCh, 2)
GetClassName StarCh, WinText, 255 + 1
Loop Until StarCh = 0
StarCh = GetWindow(StarCh, 5)
GetWindowText StarCh, WinText, 255
Do
If Left(WinText, Len(WinCaption)) = WinCaption Then
GetBookHandle = StarCh
Exit Do
End If
WinText = "'"
StarCh = GetWindow(StarCh, 2)
GetWindowText StarCh, WinText, 255
Loop Until StarCh = 0
End Function