현재 워크 시트의 잠금을 해제하는 여러 통합 문서 템플릿에 VBA 스크립트가 있습니다. 매크로를 사용하도록 허용 된 사용자가 어떤 바로 가기 키를 사용하여 통합 문서의 잠금을 해제 할 수 있는지 기억할 필요가 없도록 동일한 바로 가기 키를 사용합니다.여러 통합 문서에서 동일한 바로 가기 키 사용
대부분의 사용자는 한 번에 두 개 이상의 통합 문서를 열지 않으므로 아무런 두통이 발생하지 않습니다. 어쨌든 단축키는 사용하지 않아도됩니다. 문제는 하나 이상의 통합 문서가 열려 있고 바로 가기 키를 사용하여 VBA 스크립트를 실행하려고하는 경우입니다. 현재 VBA 스크립트의 무작위 인스턴스를 얻고 있습니다. 통합 문서간에 암호가 다르므로 문제가 발생합니다. 따라서 핫키가 WB X의 VBA 스크립트를 시작하고 WB Y 인 경우 오류가 발생합니다.
요점에 도달하면 해당 단축키의 활성 통합 문서에있는 VBA 스크립트가 사용되는 방법이 있습니까?
당 알터의 요청은 여기
Sub Lock_Unlock()
Dim CurrentUser As String 'holds the current users Windows login
Dim Approved As String
Approved = "|user1|user2|user3|"
'Give CurrentUser it's value
CurrentUser = Environ$("username")
'Check if the user is approved
If InStr(1, Approved, CurrentUser) > 0 Then
'The user can use this macro. Check if the sheet is currently locked
If ActiveSheet.ProtectContents = True Then
'It is, unlock
ActiveSheet.Unprotect Password:=PW()
Else
'It isn't, relock
ActiveSheet.Protect DrawingObjects:=False, Contents:=True, Scenarios:= _
False, Password:=PW()
End If
'Not a user approved to use this macro, don't do anything
End If
End Sub
Function PW() As String
PW = "password"
End Function
코드를 포함 시키려면이 코드에 매우 흥미가 있습니다. 나는 내가 풀어야 할 비슷한 문제가 있는데, 너를 기초로 사용한다면 나에게 많은 시간을 절약 할 수있다. – Alter