본문 바로가기
Office/Excel

Cell 내용을 사용자는 변경 못하고 VBA로만 변경 가능하도록 하는 방법

by belitino 2016. 6. 8.

출처: http://stackoverflow.com/questions/125449/how-to-protect-cells-in-excel-but-allow-these-to-be-modified-by-vba-script


VBA로 Cell에 값을 바꾸는 프로그램을 돌리는데 사용자가 그 값을 바꾸지 못하게 하기 위한 방법입니다.


츨처를 보니 워크시트를 보호하는데 UserInterface에 대해서만 보호되도록 하는 방법이 있네요.


예를 들어서 Sheet1을 보호하시려면 다음과 같이 하시고

Worksheets("Sheet1").Protect "Password", UserInterfaceOnly:=True


Password 부분은 각자 원하시는 패스워드를 지정해주시면 됩니다.


보호가 끝나면 다음과 같이 Unprotect를 해주시면 됩니다.

Worksheets("Sheet1").Unprotect "Password"


이렇게 하면 값은 바꾸지 못하게 해서 한가지 문제는 해결했는데 Focus가 다른 프로그램으로 갔을때 Cell에 값을 쓰면 써지지 않는 문제가 여전히 남아 있네요. 


그 문제는 어떻게 풀어야 할지 열심히 구글링 해봐야 겠네요.