유효성 목록 복사 방지 방법

함수/공식
작성자
폴라리스
작성일
2021-11-22 22:58
조회
40
엑셀버전 : 엑셀2016

운영체제 : 윈도우10


안녕하세요..

유용한 정보 올려주셔서 감사합니다.

실무에서 엑셀 사용하고 있는데 궁금한 점이 있어 질문 올립니다.

엑셀 동적범위 공식 및 사용법 강의를 보고 데이터 유효성 검사 목록 상자에 동적 범위를 적용하여 데이터 유효성 목록을 선택할수 있게 사용하고 있습니다.

그런데 해당 셀에 잘못된 내용을 입력하면 오류 메세지가 나오게 하는것 까지는 적용하였는데

해당셀에 다른 셀의 내용을 복사하여 붙여 넣기를 할 경우 복사된 셀의 서식이 복사되거나, 값만 복사도 가능하게 되는데

복사 + 붙여넣기 기능을 하지 못하도록 막는 기능은 없을까요??

안된다면 유효성 목록과 다르게 나올 경우 해당 셀의 색을 변경할 수 있을까요???

vba로 할수 있다면 방법이 궁금합니다.

회원등급 : 2레벨
포인트 : 27 EP
총질문 : 1 개 (마감율 : 0%)
채택답변 : 0 개
전체 1

  • 2021-11-23 17:32

    붙여넣기를 막는건 가능하지만 복사를 막는건 불가능합니다. Ctrl + C를 막을 순 있는데, 우클릭 복사를 막는건 불가능해요

    VBA로 하는건 아래 코드 참고해보시고.. 적절히 수정해보세요

    현재 통합문서 모듈

    Option Explicit
     
    Private Sub Workbook_Activate()
         'Force the current selection to be selected, triggering the appropriate
         'state of the cut, copy & paste commands
        Selection.Select
    End Sub
     
    Private Sub Workbook_BeforeClose(Cancel As Boolean)
         'Re-enable the cut, copy & paste commands
        Call ToggleCutCopyAndPaste(True)
    End Sub
     
    Private Sub Workbook_Deactivate()
         'Re-enable the cut, copy & paste commands
        Call ToggleCutCopyAndPaste(True)
    End Sub
     
    Private Sub Workbook_Open()
         'Force the current selection to be selected, triggering the appropriate
         'state of the cut, copy & paste commands
        Selection.Select
    End Sub
     
    Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range)
         'Toggle the cut, copy & paste commands on selected ranges
        
        Select Case Sh.Name
        Case Is = "Sheet1"
             'Disable cut, copy & paste for Sheet1, Column A
            If Not Intersect(Target, Target.Parent.Range("A1:A20")) Is Nothing Then
                Call ToggleCutCopyAndPaste(False)
            Else
                Call ToggleCutCopyAndPaste(True)
            End If
             
        Case Is = "Sheet2"
             'Disable cut, copy & paste for Sheet2, Range A1:A20
            If Not Intersect(Target, Target.Parent.Range("G1:G20")) Is Nothing Then
                Call ToggleCutCopyAndPaste(False)
            Else
                Call ToggleCutCopyAndPaste(True)
            End If
             
        Case Else
             'Re-enable cut copy and paste commands as this is not a restricted sheet
            Call ToggleCutCopyAndPaste(True)
        End Select
    End Sub

    일반 모듈

    Option Explicit
     
    Sub ToggleCutCopyAndPaste(Allow As Boolean)
         'Activate/deactivate cut, copy, paste and pastespecial menu items
        Call EnableMenuItem(21, Allow) ' cut
        Call EnableMenuItem(19, Allow) ' copy
        Call EnableMenuItem(22, Allow) ' paste
        Call EnableMenuItem(755, Allow) ' pastespecial
         
         'Activate/deactivate drag and drop ability
    '    Application.CellDragAndDrop = Allow
         
         'Activate/deactivate cut, copy, paste and pastespecial shortcut keys
        With Application
            Select Case Allow
            Case Is = False
                .OnKey "^c", "CutCopyPasteDisabled"
                .OnKey "^v", "CutCopyPasteDisabled"
                .OnKey "^x", "CutCopyPasteDisabled"
                .OnKey "+{DEL}", "CutCopyPasteDisabled"
                .OnKey "^{INSERT}", "CutCopyPasteDisabled"
            Case Is = True
                .OnKey "^c"
                .OnKey "^v"
                .OnKey "^x"
                .OnKey "+{DEL}"
                .OnKey "^{INSERT}"
            End Select
        End With
    End Sub
     
    Sub EnableMenuItem(ctlId As Integer, Enabled As Boolean)
         'Activate/Deactivate specific menu item
        Dim cBar As CommandBar
        Dim cBarCtrl As CommandBarControl
        For Each cBar In Application.CommandBars
            If cBar.Name <> "Clipboard" Then
                Set cBarCtrl = cBar.FindControl(ID:=ctlId, recursive:=True)
                If Not cBarCtrl Is Nothing Then cBarCtrl.Enabled = Enabled
            End If
        Next
    End Sub
     
    Sub CutCopyPasteDisabled()
         'Inform user that the functions have been disabled
        MsgBox "Sorry! Cutting, copying and pasting have been disabled in this workbook!"
    End Sub
    

    참고 : Restrict Copy Paste only certain cells in a worksheet | MrExcel Message Board


전체 4,619
번호 카테고리 제목 작성자 작성일 추천 조회
공지사항 공지사항
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐ (8)
오빠두엑셀 | 2021.10.28 | 추천 12 | 조회 643
트로피 오빠두엑셀 2021.10.28 12 643
24053 파워쿼리/피벗
New 엑셀 배열 순서를 바꾸고 싶습니다. 첨부파일
jyj6**** | 10:04 | 추천 1 | 조회 18
jyj6**** 10:04 1 18
VBA
New Re:엑셀 배열 순서를 바꾸고 싶습니다.
Yukon | 13:01 | 추천 0 | 조회 10
Yukon 13:01 0 10
24048 VBA
New 재고관리 툴 만들기 질문이요 첨부파일 (2)
선물 | 2021.11.26 | 추천 0 | 조회 26
선물 2021.11.26 0 26
24046 함수/공식
New 날짜별로 근태 정리를 하려면 어떻게 해야할까요 첨부파일 (2)
ㅁㅁㅁㅁㅁ | 2021.11.26 | 추천 0 | 조회 33
ㅁㅁㅁㅁㅁ 2021.11.26 0 33
24042 VBA
New 한 코드를 가진 사람의 계약일자 최소값 최대값 구하기 첨부파일
seorin | 2021.11.26 | 추천 0 | 조회 23
seorin 2021.11.26 0 23
24039 함수/공식
New 다중 조건 및 가장 낮은 일시에 매칭되는 값 불러오기 첨부파일 (6)
감사하모니카 | 2021.11.26 | 추천 0 | 조회 27
감사하모니카 2021.11.26 0 27
24038 VBA
New ZAN IMAGE PRINTER 프로그램에서 JPG 파일명을 내 마음대로 (2)
goodman | 2021.11.26 | 추천 0 | 조회 20
goodman 2021.11.26 0 20
24033 문서서식
New 조건부 서식 특정열 단어포함시 해당 행의 서식 변경 방법 첨부파일 (2) 답변완료
아빠의꿈 | 2021.11.26 | 추천 0 | 조회 25
아빠의꿈 2021.11.26 0 25
24032 함수/공식
New 함수 초보 질문있습니다. (2) 답변완료
윤태종 | 2021.11.26 | 추천 0 | 조회 26
윤태종 2021.11.26 0 26
24029 VBA
New 엑셀로그인 프로그램 사용자 개인별 시트만 보이게 하는 방법 첨부파일 (1)
엑셀이 | 2021.11.26 | 추천 0 | 조회 24
엑셀이 2021.11.26 0 24
24014 VBA
New Private Sub Worksheet_Change(ByVal Target As Range) 조건문의 (1)
yg | 2021.11.26 | 추천 1 | 조회 30
yg 2021.11.26 1 30
24011 VBA
New vba 고급필터후 인쇄 자동화 첨부파일 (1)
naver_6180ef1e63220 | 2021.11.26 | 추천 0 | 조회 32
naver_6180ef1e63220 2021.11.26 0 32
24010 문서서식
New 양이 많은 '병합하고 가운데 맞춤 '버튼을 눌러서 할일을 쉽게 하는방법 첨부파일 (3)
아빠의꿈 | 2021.11.26 | 추천 0 | 조회 40
아빠의꿈 2021.11.26 0 40
24009 함수/공식
New 오빠두 강의 중 마지막셀 이동에 관하여 질문드립니다. (MATCH함수) (2)
월마리아 | 2021.11.25 | 추천 0 | 조회 32
월마리아 2021.11.25 0 32
24006 함수/공식
New 조건부 서식 함수 첨부파일 (1)
AFOPWEOI1213 | 2021.11.25 | 추천 -1 | 조회 40
AFOPWEOI1213 2021.11.25 -1 40
24005 파워쿼리/피벗
New 파워쿼리에서 다중조건 평균구하기 (1)
황선규 | 2021.11.25 | 추천 0 | 조회 24
황선규 2021.11.25 0 24
24002 기능/도구
New 엑셀 요 기능 이름이 뭐죠?ㅜㅜ (2) 답변완료
냥냥 | 2021.11.25 | 추천 0 | 조회 35
냥냥 2021.11.25 0 35
24000 함수/공식
New 조건부서식에서 배열수식이 입력가능한가요? (2) 답변완료
무케 | 2021.11.25 | 추천 0 | 조회 33
무케 2021.11.25 0 33
23998 VBA
New Auto_open / Auto_close에서 프로젝트나 라이브러리를 찾을수없습니다. 문제.... 아시는분 (1) 답변완료
카이로젠 | 2021.11.25 | 추천 0 | 조회 22
카이로젠 2021.11.25 0 22
23996 기능/도구
New 제품명 일괄 수정방법 (2) 답변완료
태환11 | 2021.11.25 | 추천 0 | 조회 35
태환11 2021.11.25 0 35
23995 함수/공식
New 해찾기 문제 관련, 전체 양은 10kg은 채우되, 목표 함량을 충족하고 가장 저렴한 방법 찾기..? 첨부파일 (5)
맞장구침 | 2021.11.25 | 추천 0 | 조회 32
맞장구침 2021.11.25 0 32
23991 VBA
New function결과값 외에도 그 안의 값을 다른셀에 입력하고싶습니다 (1)
오리22 | 2021.11.25 | 추천 0 | 조회 20
오리22 2021.11.25 0 20
23990 함수/공식
New or 함수 문의드립니다. (3) 답변완료
무케 | 2021.11.25 | 추천 0 | 조회 31
무케 2021.11.25 0 31
23985 VBA
New 개인용매크로 관련문의입니다. (4) 답변완료
무케 | 2021.11.25 | 추천 0 | 조회 37
무케 2021.11.25 0 37
23980 함수/공식
New 함수문의 드립니다 (5) 답변완료
제이올라 | 2021.11.25 | 추천 0 | 조회 36
제이올라 2021.11.25 0 36
23977 VBA
New 중복행 데이터 입력, 통합 관련 문의드립니다. 첨부파일 (4) 답변완료
케빈 | 2021.11.25 | 추천 0 | 조회 33
케빈 2021.11.25 0 33
23976 VBA
New QR코드 생성후 인식 오류 첨부파일 (1)
빡군 | 2021.11.25 | 추천 0 | 조회 19
빡군 2021.11.25 0 19
23975 함수/공식
New if함수 날짜 문제 관련 첨부파일 (2) 답변완료
이선미 | 2021.11.25 | 추천 0 | 조회 28
이선미 2021.11.25 0 28
23973 함수/공식
New 분할 입고 일정 (첫 입고일/마지막 입고일 요약) 첨부파일 (2)
Gina (배진화/우준 & 지오 맘) | 2021.11.25 | 추천 0 | 조회 27
Gina (배진화/우준 & 지오 맘) 2021.11.25 0 27
23969 VBA
New VBA를 활용하여 hwp 테이블에 삽입하기 (2) 답변완료
Han | 2021.11.25 | 추천 0 | 조회 27
Han 2021.11.25 0 27
23967 함수/공식
New 다중조건 출력 (INDEX & MATCH로는 한계가 있는듯 합니다.) 첨부파일 (1)
얌쫑 | 2021.11.25 | 추천 1 | 조회 46
얌쫑 2021.11.25 1 46