- ©«¤l
 - 1527 
 - ¥DÃD
 - 40 
 - ºëµØ
 - 0 
 - ¿n¤À
 - 1551 
 - ÂI¦W
 - 0  
 - §@·~¨t²Î
 - Windows  7 
 - ³nÅ骩¥»
 - Excel 2010 & 2016 
 - ¾\ŪÅv
 - 100 
 - ©Ê§O
 - ¨k 
 - ¨Ó¦Û
 - ¥xÆW 
 - µù¥U®É¶¡
 - 2020-7-15 
 - ³Ì«áµn¿ý
 - 2025-11-4 
 
  | 
                
 ¥»©«³Ì«á¥Ñ Andy2483 ©ó 2024-1-31 10:18 ½s¿è  
 
¦^´_ 7# lkkchf  
 
 
    ÁÂÁ½׾Â,ÁÂÁ«e½ú¦A¦^´_,¤@°_¾Ç²ß 
«á¾ÇÂǦ¹©«¾Ç²ß¨ì«Ü¦hª¾ÃÑ,¾Ç²ß¤è®×¦p¤U,½Ð«e½ú°Ñ¦Ò 
 
 
 
 
Option Explicit 
#If Win64 Then 
   Private Declare PtrSafe Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As LongPtr 
   Private Declare PtrSafe Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As LongPtr, ByVal hWnd2 As LongPtr, ByVal lpsz1 As String, ByVal lpsz2 As String) As LongPtr 
   Private Declare PtrSafe Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As LongPtr, ByVal wMsg As Long, ByVal wParam As LongPtr, lParam As Any) As LongPtr 
   Private Declare PtrSafe Function timeSetEvent Lib "winmm.dll" (ByVal uDelay As Long, ByVal uResolution As Long, ByVal lpFunction As LongPtr, ByVal dwUser As LongPtr, ByVal uFlags As Long) As Long 
   Private Declare PtrSafe Function timeKillEvent Lib "winmm.dll" (ByVal uID As Long) As Long 
   #Else 
   Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long 
   Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long 
   Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long 
   Private Declare Function timeSetEvent Lib "winmm.dll" (ByVal uDelay As Long, ByVal uResolution As Long, ByVal lpFunction As Long, ByVal dwUser As Long, ByVal uFlags As Long) As Long 
   Private Declare Function timeKillEvent Lib "winmm.dll" (ByVal uID As Long) As Long 
#End If 
Private Const Em_SetPassWordChar = &HCC 
Dim lTimeID As Long 
Const pswdInputBoxTitle = "pswdInputBox" 
Sub TimeProc(ByVal uID As Long, ByVal uMsg As Long, ByVal dwUser As Long, ByVal dw1 As Long, ByVal dw2 As Long) 
Dim hwd As LongPtr 
hwd = FindWindow("#32770", pswdInputBoxTitle) 
If hwd <> 0 Then hwd = FindWindowEx(hwd, 0, "Edit", vbNullString): SendMessage hwd, Em_SetPassWordChar, 42, 0:  timeKillEvent lTimeID 
End Sub 
Function pswdInputBox() As Variant 
lTimeID = timeSetEvent(10, 50, AddressOf TimeProc, 1, 1) 
pswdInputBox = InputBox(Prompt:="½Ð¿é¤JºÞ²zû±K½X", Title:=pswdInputBoxTitle) 
End Function 
'========================================================= 
Sub ¤u§@ªí¯Á¤Þ¼ÐÅÒ_S_H() 
Dim xS As Worksheet, acS As Worksheet 
If ActiveWorkbook.ProtectWindows Or ActiveWorkbook.ProtectStructure Then 
   If pswdInputBox <> "12345" Then Exit Sub 
   ActiveWorkbook.Unprotect "0000" 
   Set acS = ActiveSheet 
   For Each xS In Worksheets: xS.Visible = True: Next 
   acS.Activate: ActiveWindow.DisplayWorkbookTabs = True: Exit Sub 
End If 
For Each xS In Worksheets: xS.Visible = IIf(Not xS Is ActiveSheet, False, True): Next 
ActiveWorkbook.Protect "0000", Structure:=True, Windows:=True 
ActiveWindow.DisplayWorkbookTabs = False 
End Sub 
'========================================================= 
Sub Åã¥Ü_¤u§@ªí1() 
Dim xS As Worksheet, acS As Worksheet 
ActiveWorkbook.Unprotect "0000": Set acS = Sheets("¤u§@ªí1"): acS.Visible = True: acS.Activate 
For Each xS In Worksheets: xS.Visible = IIf(Not xS Is acS, False, True): Next 
ActiveWorkbook.Protect "0000", Structure:=True, Windows:=True: ActiveWindow.DisplayWorkbookTabs = False 
End Sub 
'========================================================= 
Sub Åã¥Ü_¤u§@ªí2() 
Dim xS As Worksheet, acS As Worksheet 
ActiveWorkbook.Unprotect "0000": Set acS = Sheets("¤u§@ªí2"): acS.Visible = True: acS.Activate 
For Each xS In Worksheets: xS.Visible = IIf(Not xS Is acS, False, True): Next 
ActiveWorkbook.Protect "0000", Structure:=True, Windows:=True: ActiveWindow.DisplayWorkbookTabs = False 
End Sub 
'========================================================= 
Sub Åã¥Ü_¤u§@ªí3() 
Dim xS As Worksheet, acS As Worksheet 
ActiveWorkbook.Unprotect "0000": Set acS = Sheets("¤u§@ªí3"): acS.Visible = True: acS.Activate 
For Each xS In Worksheets: xS.Visible = IIf(Not xS Is acS, False, True): Next 
ActiveWorkbook.Protect "0000", Structure:=True, Windows:=True: ActiveWindow.DisplayWorkbookTabs = False 
End Sub 
°Ñ¦Ò: 
https://forum.twbts.com/viewthre ... amp;page=1#pid29595 |   
 
 
 
 |