최근 365 구독버전 2104(빌드 139.6.20000 간편실행) 베타채널 이상에서는

개체 잠금 기능을 지원합니다.

Alt-F10 개체 선택 창에서 자물쇠 모양을 누르거나

마우스 우클릭 후 잠금을 선택합니다.

참고: https://m.blog.naver.com/radiobj5/222270903352

 

 

365하위버전이나 2019이하 버전에서는 아직 지원하지 않기 때문에

개체에 잠금효과를 주려면 개체(도형)를 슬라이드 마스터로 보내는 번거로운 방법을 써야만 합니다.

 

그래서 이 과정을 VBA로 자동화 시키고 빠른실행에 추가해서 Alt+숫자키로 빠르게 도형을 잠그고 풀 수 있도록 해보았습니다.

개체 잠금/풀기 효과 구현 영상

VBA로 개체 잠그고 풀기

Lock 매크로는 현재 선택된 도형을 감추고 이 도형을 현재 슬라이드 마스터 레이아웃에 복사합니다.

선택할 수는 없는 잠금 효과를 낼 수 있습니다.

Unlock 매크로는 현재 슬라이드 마스터에 있는 모든 잠긴 도형을 삭제하고 현재 슬라이드에 숨겨진 도형들을 다시 보이게 처리합니다.

 

 

더보기
Sub Lock_SendToMaster()

    Dim sld As Slide
    Dim shp As Shape
    Dim layout As CustomLayout
    On Error GoTo oops
    
    Set shp = ActiveWindow.Selection.ShapeRange(1)
    Set sld = shp.Parent
    
    '현재 도형은 복사/숨기기
    shp.Copy
    shp.Visible = msoFalse
    
    '현재 슬라이드마스터 레이아웃에 복제
    Set layout = sld.CustomLayout
    With layout.Shapes.Paste(1)
        .Name = "Locked_" & shp.Name
    End With
    
oops:
    If Err Then MsgBox Err.Description
    
End Sub

Sub UnLock_RecoverFromMaster()

    Dim sld As Slide
    Dim shp As Shape
    Dim i As Long, c As Long
    Dim layout As CustomLayout
    On Error GoTo oops
    
    Set sld = ActiveWindow.Selection.SlideRange(1)
    
    '현재 슬라이드마스터 레이아웃에서 복사된 도형 찾기
    Set layout = sld.CustomLayout
    For i = layout.Shapes.Count To 1 Step -1
        Set shp = layout.Shapes(i)
        If shp.Name Like "Locked_*" Then
            sld.Shapes(Mid(shp.Name, 8)).Visible = msoTrue
            shp.Delete
            c = c + 1
        End If
    Next i
    
    MsgBox c & "개의 개체가 복구되었습니다.", vbInformation
oops:
    If Err Then MsgBox Err.Description
    
End Sub

 

샘플파일 참고하세요.

LockObject1.pptm
0.04MB

 

그밖의 방법으로는 프리젠테이션의 xml 코드에 Lock관련한 태그를 적어주는 방법도 있긴 합니다.