Shay는 자원 봉사 단체와 함께 일하며 자원 봉사자를 위해 특별히 Excel 워크 북을 개발했습니다. 그들은 복사하거나 외부 개인과 공유하는 것을 원하지 않으므로 Shay는 통합 문서가 특정 컴퓨터에서만 작동하고 다른 컴퓨터에서만 작동하도록 보호하는 방법이 있는지 궁금합니다.

통합 문서의 보안을 강화하는 방법이 있지만 최상의 방법을 결정하기 전에 고려해야 할 사항이 있습니다.

거의 모든 접근 방식이 사용자에게 어느 정도 불편을 끼칠 것이라는 점을 이해하십시오. 또한 사용하는 접근 방식은 사용자가 내부 네트워크에만 있는지 또는 네트워크에 연결되지 않은 자원 봉사자인지에 따라 달라질 수 있습니다.

시작하는 쉬운 방법은 통합 문서를 암호로 보호 한 다음 자원 봉사자에게 암호를 알려주는 것입니다. 이것의 두 가지 단점은 자원 봉사자에게 전달하는 암호가 더 이상 자원 봉사자가 아니더라도 자원 봉사자가 통합 문서를 전달할 수있는 사람을 위해 계속 작동한다는 것입니다. 각 자원 봉사자에 대해 개별 암호를 설정하더라도 마찬가지입니다.

다른 방법은 통합 문서에 매크로를 추가하는 것입니다.

좋은 방법은 매크로가 통합 문서가 열려있는 컴퓨터의 이름을 확인하는 것입니다. 다음은 이러한 매크로의 예입니다.

Private Sub Workbook_Open()

Dim sComputerName As String     Dim sPossible As String     Dim sTemp As String

sPossible = "[NEWDELL][Computer1][Order Entry][Dan's System]"

sPossible = sPossible & "[Computer2][Computer3]"



sComputerName = Environ("computername")

sTemp = "[" & sComputerName & "]"



If InStr(sPossible, sTemp) Then         MsgBox "Welcome to the workbook."

Else         MsgBox "You are not authorized to open this workbook."

Workbooks(ActiveWorkbook.Name).Close SaveChanges:=False     End If End Sub

매크로의 기본 개념은 통합 문서를 열 수있는 각 컴퓨터의 이름을 sPossible 문자열에 정의하는 것입니다. 여러분이해야 할 일은 기계 이름의 철자가 정확히 정확한지 확인하고 sPossible 문자열에서 대괄호로 묶는 것입니다. Environ 함수는 실제 컴퓨터 이름을 반환하고 괄호 안의 sTemp 변수에 배치 된 다음 InStr 함수를 사용하여 가능한 컴퓨터 목록에 있는지 확인합니다.

그렇다면 메시지 상자가 표시됩니다. 그렇지 않은 경우 메시지 상자가 표시되고 변경 사항을 저장하지 않고 통합 문서가 닫힙니다.

좀 더 안전한 것을 선호한다면 Environ 함수를 사용하여 “http://username-password.com/[username]”을 반환 할 수도 있습니다.

컴퓨터에서 사용중인 계정의 사용자 이름을 제공합니다.

이 매크로 접근 방식은 비교적 간단하지만 제대로 작동하려면 컴퓨터 이름 (및 / 또는 사용자 이름)을 알아야합니다. 또한 사용자가 프로그램이 시작될 때 Shift 키를 눌러 매크로를 우회 할 수있을만큼 Excel에 대해 충분히 알지 못한다고 가정합니다. 사용자가 그렇게 많이 알고 있다고 의심되는 경우 다음과 같은 추가 단계를 수행해야합니다.

  • 통합 문서에 단일 워크 시트가 표시되는지 확인합니다. 다른 모든 워크 시트는 사용자가 일반 단계를 사용하여 표시 할 수 없도록 “매우 숨겨져”있어야합니다.

  • 매크로가 사용자가 허용 된 것으로 결정하면 보이는 단일 워크 시트를 숨기고 “매우 숨겨진”워크 시트를 모두 표시합니다.

  • 통합 문서가 닫히면 프로세스를 반대로하고 모든 워크 시트를 숨기고 (각 워크 시트의 Visible 속성을 xlSheetVeryHidden으로 설정) 단일 워크 시트를 다시 표시합니다.

이 방법을 사용하면 사용자가 시작하는 동안 Shift 키를 눌러 매크로를 비활성화하더라도 매크로를 표시하려면 매크로가 필요하기 때문에 워크 시트에 액세스 할 수 없습니다.

위의 접근 방식의 변형을 활용하여 Environ 기능에 의존하는 대신 시스템의 특정 위치에 미리 결정된 파일의 존재 여부를 매크로로 확인할 수 있습니다.

이것은 물론 적절한 위치에 적절한 파일을 배치하기 위해 미리 시스템에 손을 댈 방법이 필요하다는 것을 의미합니다.

마지막으로 어떤 매크로 기반 접근 방식을 선택하든 통합 문서의 VBA 프로젝트가 암호로 보호되는지 확인해야합니다. 이것은 누군가가 당신의 매크로 코드를보고 보호에 무슨 일이 일어나고 있는지 알아내는 것을 막을 것입니다.

통합 문서를 보호하려고 할 때 항상 염두에 두어야 할 사항이 있습니다. 어떤 안전 장치를 마련하든 충분한 지식과 인내심을 가지고 항상 우회 할 수 있습니다. 사용자가 기술적으로 정교하지 않다면 문제가 없어야합니다. 그러나 그들이 Excel과 매크로에 대해 많이 알고 있다면 모든 베팅이 해제됩니다.

_ 참고 : _

이 페이지 (또는 ExcelTips 사이트의 다른 페이지)에 설명 된 매크로를 사용하는 방법을 알고 싶다면 유용한 정보가 포함 된 특별 페이지를 준비했습니다.

link : / excelribbon-ExcelTipsMacros [새 브라우저 탭에서 특별 페이지를 열려면 여기를 클릭하세요].

_ExcelTips_는 비용 효율적인 Microsoft Excel 교육을위한 소스입니다.

이 팁 (13666)은 Office 365의 Microsoft Excel 2007, 2010, 2013, 2016, 2019 및 Excel에 적용됩니다.