슬라이서와 차트가 포함된 Excel 파일을 공유하고 싶습니다. 사용자가 필터링을 위해 슬라이서를 사용한 다음 차트를 선택하고 복사할 수 있기를 바랍니다. 하지만 시트를 보호하고 차트와 슬라이서의 편집을 방지하고 싶습니다.
내가 볼 수 있는 한 옵션은 차트와 슬라이서를 잠그는 것입니다. 이 경우 시트가 보호되어 있으면 편집할 수 없지만 슬라이서는 동결되어 차트를 복사할 수 없습니다(PrintScreen은 옵션이 아닙니다). . 또는 잠금을 해제하려면 사용할 수는 있지만 편집할 수는 있습니다.
이 문제를 해결할 방법이 있나요?
답변1
두 가지 옵션이 있습니다. 한 가지 방법은 VBA 지원 워크시트를 선택하고 VBA를 사용하여 자신만의 논리를 추가하는 것입니다. 하지만 이를 위해서는 시트가 있어야 xlsm
하고 최종 사용자가 통합 문서에서 매크로를 활성화해야 합니다. 하지만 이 방법을 사용하면 허용된 사용자 작업을 가장 효과적으로 제어할 수 있습니다. 두 번째 방법은 xlsx
VBA를 사용하지 않는 것입니다. 하지만 슬라이서를 삭제하거나 차트 이름을 변경하는 등 사용자에게 일부 작업을 거부할 수는 없습니다.
1) 당신은 할 수 있습니다여기 추천대로:
Private Sub Chart1_Click()
ActiveSheet.ChartObjects(1).CopyPicture
MsgBox ("Chart copied to clipboard. You can now paste this into another application.")
End Sub
이는 통합 문서를 매크로가 포함된 통합 문서인 xlsm으로 변환해야 함을 의미합니다. 그런 다음 차트 클릭 시 클립보드 작업을 처리하는 매크로를 추가합니다.
2) 내 생각에 더 좋은 방법은 보호된 워크시트에서 차트 요소를 잠금 해제된 상태로 두고매크로를 사용하여 속성 수정:
Sub macro()
ActiveChart.ProtectData = True
ActiveChart.ProtectFormatting = True
ActiveChart.ProtectSelection = False
End Sub
또는 시트의 모든 차트에 대해:
For Each i In ActiveSheet.ChartObjects
i.Chart.ProtectSelection = False
i.Chart.ProtectData = True
i.Chart.ProtectFormatting = True
Next i
이렇게 하면 통합 문서를 만들 때 매크로를 사용할 수 있지만 통합 문서 자체에는 VBA가 포함되지 않습니다.
차트에 대해 별도의 시트를 만드는 경우 비밀번호를 사용하여 별도로 보호할 수 있습니다.
Sub macro()
Dim newChart As Chart
Range("C9:C11").Select
Set newChart = ActiveChart
With newChart
.Protect Password:="pwd", DrawingObjects:=True, Contents:=True
.ProtectData = True
.ProtectFormatting = True
.ProtectSelection = False
.ChartObjects(1).Chart.ProtectSelection = False
'setting other properties
End With
End Sub
슬라이서의 경우 잠금 해제된 상태로 두고 워크시트를 잠글 때 "피벗 가능한 보고서 사용"을 선택해야 합니다.
답변2
편집이란 그래프 자체의 기본 데이터나 스타일만을 의미합니까?
데이터만 잠그고 싶다면 보호된 시트에 데이터를 두고(피벗 사용, 선택, 정렬 등도 허용할 수 있음) 그래프를 다른 시트에 보관할 수 있습니다.
여기클릭 시 그래프를 복사하는 매크로를 사용하는 것이 좋습니다. 이는 그래프가 있는 시트도 보호되는 경우 사용할 수 있는 것입니다.
답변3
읽기 전용 모드를 활성화해 보세요. 나는 이것이 Excel의 기능(제한된 보기와 별개)이라고 생각하지만 틀릴 수도 있습니다.