Contents 호환성 문제의 정의와 증상 분류 즉시 조치 체크리스트(빠른 복구) 파일 형식별 특성과 선택 기준 버전 차이로 인한 기능 손실과 대체 전략 조직 환경 차이: 32/64비트, 추가기능, 보안 정책 CSV·텍스트 파일 호환성: 인코딩·구분 기호·서식 날짜·숫자 변형 방…
주의 : ActiveX 컨트롤은 파일 신뢰 설정과도 상호작용한다. 신뢰 센터에서 매크로 설정이 제한되면 편집 자체가 막힐 수 있다.
조직 정책·공동 편집 환경에서의 제약
IRM/민감도 레이블이 적용된 파일은 사용자 권한에 따라 편집 가능 범위가 달라진다.
공유 통합 문서 또는 공동 작성 중에는 특정 보호 옵션이 고정되거나 지연 반영될 수 있다.
템플릿 배포 시 관리자 매크로가 보호를 자동 적용할 수 있다.
주의 : 배포 정책이 활성화된 파일은 로컬에서 보호를 해제해도 다시 열 때 자동 재적용될 수 있다. 배포 스크립트와 정책을 확인해야 한다.
VBA로 대량 제어하기
여러 개체의 잠금 속성을 일괄 변경하거나, 사용자 인터페이스만 잠근 상태에서 매크로로는 편집 가능하도록 설정할 수 있다.
1) 시트의 모든 도형 잠금 해제
Sub UnlockAllShapes() Dim sh As Shape For Each sh In ActiveSheet.Shapes On Error Resume Next sh.Locked = False On Error GoTo 0 Next sh End Sub
2) 차트 개체 잠금 해제
Sub UnlockCharts() Dim co As ChartObject For Each co In ActiveSheet.ChartObjects co.Locked = False Next co End Sub
3) 시트 보호를 UI만 잠그고 매크로는 허용
Sub ProtectUIOnly() With ActiveSheet .Unprotect Password:="yourPwd" .Protect Password:="yourPwd", UserInterfaceOnly:=True, DrawingObjects:=False ' DrawingObjects:=False 로 두면 개체 편집 허용이다. End With End Sub
주의 :UserInterfaceOnly:=True는 통합 문서를 다시 열면 초기화된다. 통합 문서 Open 이벤트에서 매번 호출해야 한다.
4) 특정 이름의 개체만 편집 허용
Sub AllowEditByName() Dim target As Shape Set target = ActiveSheet.Shapes("LogoBox") target.Locked = False ActiveSheet.Protect Password:="yourPwd", DrawingObjects:=False End Sub
문제 재현·검증 시나리오
새 시트에 도형 두 개를 만든다(A, B)이다.
A는 잠금 체크, B는 잠금 해제로 설정한다.
시트 보호를 개체 편집=해제로 적용한다. A·B 모두 수정 불가임을 확인한다.
시트 보호를 해제하고 다시 개체 편집=허용으로 적용한다. A는 잠금 때문에 여전히 제한되고, B는 수정 가능함을 확인한다.
상태
도형 잠금
개체 편집 옵션
결과
케이스 1
잠금
해제
수정 불가
케이스 2
잠금 해제
해제
수정 불가
케이스 3
잠금
허용
수정 제한(대부분 불가)
케이스 4
잠금 해제
허용
수정 가능
자주 발생하는 함정과 해결
도형이 선택되지 않음이다. 시트 보호에서 개체 선택이 막혀 있는 경우이다. 보호 해제 후 옵션을 조정한다.
그룹 도형 일부만 수정 불가이다. 그룹 내부의 개별 도형 잠금이 혼재되어 있다. 그룹 해제 → 모두 잠금 해제 → 재그룹한다.
차트만 유독 수정 불가이다. 차트 영역이 아닌 플롯 영역·계열을 잘못 클릭한 경우이거나, 시트 보호에서 개체 편집이 꺼져 있다. 옵션을 확인한다.
컨트롤이 회색이다. 신뢰 센터의 매크로 제한 혹은 디자인 모드 상태이다. 신뢰 설정과 디자인 모드를 점검한다.
주의 : 도형이 워크시트가 아닌 차트 시트에 있는 경우 동작과 옵션 위치가 다르다. 해당 시트 유형을 확인해야 한다.
업무 현장에서의 권장 운영 절차
레이어링 전략이다. 데이터 셀은 잠금, 개체는 잠금 해제, 시트 보호 시 개체 편집 허용으로 설정한다.
아래 스크립트는 시트를 표준 보호 상태로 초기화하고, 특정 이름 규칙을 가진 개체만 편집 허용으로 전환한다.
Sub StandardizeProtection() Dim pwd As String: pwd = "yourPwd" Dim sh As Worksheet: Set sh = ActiveSheet
' 1) 보호 초기화
On Error Resume Next
sh.Unprotect Password:=pwd
On Error GoTo 0
' 2) 모든 개체 기본 잠금
Dim s As Shape
For Each s In sh.Shapes
s.Locked = True
Next s
' 3) 접두사 "EDIT_" 개체만 잠금 해제
For Each s In sh.Shapes
If Left$(s.Name, 5) = "EDIT_" Then s.Locked = False
Next s
' 4) 보호 재설정: 개체 편집 허용, UI만 잠금
sh.Protect Password:=pwd, UserInterfaceOnly:=True, DrawingObjects:=False
End Sub
주의 : 조직 공용 파일에서는 암호를 코드에 하드코딩하지 말아야 한다. 외부 암호 저장소나 사용자 입력 프롬프트를 사용해야 한다.
마무리 점검 체크리스트
문제 시트에서 보호를 해제·재설정했는가.
개체의 잠금 플래그와 시트의 개체 편집 허용 옵션을 일치시켰는가.
그룹 도형과 숨김 개체까지 점검했는가.
컨트롤과 매크로 신뢰 설정을 검토했는가.
템플릿과 자동화 스크립트로 표준화를 적용했는가.
FAQ
암호를 모르면 해결할 수 있나?
암호 없이 사용자 단에서 보호 옵션을 바꿀 수 없다. 파일 소유자나 관리자에게 해제를 요청해야 한다.
도형 일부만 수정 가능하다. 왜 그런가?
개별 도형의 잠금 설정이 혼합되었거나 그룹 내부 편차가 원인이다. 그룹을 해제하고 모두 잠금 해제 후 재그룹한다.
공동 작성 파일에서 옵션이 저장되지 않는다.
동시 편집 세션에서는 보호 전환이 지연·충돌될 수 있다. 단독 모드에서 보호를 재설정하고 변경 사항 동기화 후 다시 공유한다.
개체 편집 옵션이 보이지 않는다.
버전 또는 언어에 따라 문구가 다를 수 있다. 시트 보호 대화상자에서 개체 관련 항목을 확인하고, 필요 시 그리기 또는 도형 서식 탭을 활성화한다.
매크로만 개체를 변경하고 사용자는 못 하게 하고 싶다.
UserInterfaceOnly:=True를 사용해 UI를 잠그고, 매크로에서만 개체를 조작하도록 한다.