나눔터  
  HOME > 나눔터 > 묻고답하기 > 엑셀
엑셀
엑셀에 대한 질문과 답변을 올려주세요. 단, 취지에 맞지 않는 글은 운영자가 삭제합니다.
 "000 님, 도와주세요", "부탁 드립니다.", "급합니다!" 등과 같이 막연한 제목을 달지 말아주세요.
[필독] 빠르고 정확한 답변을 얻는 16가지 Tip !
[필독] 저작권법 개정에 따른 이용안내
작성자:  

 dew (dewdrop)

추천:  2
파일:     조회:  1488
제목:   [RE]특정셀에 입력 못하도록 보호하는 VBA
     
  * 답변하시는 분들께 도움이 되도록 자신의 환경을 아래 항목 옆에 기재해 주세요.

 - 엑셀 버전(95,97,2000,xp,2003,2007):2007

* 아래줄에 질문을 작성하세요 >>
안녕하세요.
VBA를 이용하여 "A2:C11"까지 수정을 못하게 하고 싶습니다.
어떤 함수를 써야 하나요?

쉬운듯 하면서도 막상 Protect 등으로 보호하려니까 안되네요..

아울러 특정 시트에서 모든 Shape를 삭제하되 커멘드버튼만 삭제안되게 할 수 있나요?
감사합니다.
==============[cycy님 글에 대한 답변입니다]==============

VBA를 이용하여 "A2:C11"까지 수정을 못하게 하고 싶습니다.
==>
Sub userProtect()
    With ActiveSheet
        .Unprotect
        With .Cells
            .Locked = False
            .FormulaHidden = False
        End With
        
        With .Range("A2:C11")
            .Locked = True
            .FormulaHidden = False
        End With
        .Protect DrawingObjects:=True, Contents:=True, Scenarios:=True
    End With
End Sub

아울러 특정 시트에서 모든 Shape를 삭제하되 커멘드버튼만 삭제안되게 할 수 있나요?
==>
Sub del_Shape()
    Dim shpX As Shape
    Dim blnX As Boolean
    
    For Each shpX In ActiveSheet.Shapes
        blnX = True
        Select Case shpX.Type
            Case msoOLEControlObject
                If shpX.DrawingObject.OLEType = 2 Then
                    If InStr(shpX.OLEFormat.progID, "CommandButton") Then blnX = False
                End If
            Case Else
                If shpX.FormControlType = 0 Then blnX = False
        End Select
        
        If blnX Then shpX.Delete
    Next
End Sub
 
[불량 게시물 신고]  
cycy감사합니다..
몇 일 동안 헤메던 문제를 해결해 주셨습니다.
02-14 (11:06)
삭제 ■신고
        
  

작성일 : 2019-02-12(15:27)
최종수정일 : 2019-02-12(15:27)
 


 ◎ 관련글

  제 목   작성자   날짜
특정셀에 입력 못하도록 보호하는 VBA cycy 2019-02-11
[RE]특정셀에 입력 못하도록 보호하는 VBA dew 2019-02-12