시트에 대해 "매크로를 활성화"하기 전에 Excel 매크로를 검사 / 확인하는 방법은 무엇입니까?


13

가끔 사용해야하는 매크로가 포함 된 xls 파일을 받고 있습니다. 발신자를 완전히 신뢰하지 않으면 매크로 소스가 실제로 의도 한 것만 수행하는지 확인하기 위해 매크로 소스를 살펴보고 싶습니다.

그러나 Excel 2010에서는 시트에 대한 매크로를 먼저 활성화하지 않으면 "매크로보기"아래의 "편집"단추가 비활성화됩니다. 그러나 매크로를 처음 활성화하면 해당 코드가 완료된 후에 만 ​​악성 코드를 찾을 수 있습니다. 달리는...

문서에 매크로를 사용하기 전에 매크로 소스를 보려면 어떻게해야합니까?

답변:


13

Word의 개발자 탭을 사용하여 문서에 포함 된 Visual Basic 루틴에 쉽게 액세스 할 수 있도록하여 문서의 모든 매크로를 살펴볼 수 있습니다.

먼저 개발자 탭이 활성화되어 있는지 확인해야합니다. 파일-> 옵션으로 이동 한 다음 :

개발자 탭

이제 나타나는 개발자 탭에는 "Visual Basic"단추가 있어야 Visual Basic 편집기로 이동할 수 있습니다.

편집기 왼쪽의 문서 트리를 찾아 보면 먼저 매크로를 활성화하지 않고도 문서에 포함 된 모든 코드와 모듈을 볼 수 있습니다.

나는 신뢰할 수없는 문서로 이것을하는 경향이있다.

참고 : Word 에서이 작업을 수행했으며 Excel에서 동일한 기능을 사용할 수 있으며이를 활성화하는 옵션이 같은 위치에 있습니다.


9

2003 년 이후의 모든 Office 응용 프로그램 및 이전 버전의 모든 버전에서 Alt+ F11는 VBA 편집기를 엽니 다. Office 2007 용 리본에서 '개발자'탭을 활성화 할 필요가 없으며이 기능을 사용하기 위해 최신 버전입니다.


2
많은 버전 (적어도 Excel)에서 Alt+ F11는 " ! SECURITY WARNING ... Enable Content"배너가 사라지도록하여 코드 실행이 활성화되었음을 의미 합니다. 오해의 소지가 있습니다. on_open()모듈 로 문서를 작성하여이를 데모 할 수 있습니다 . 이벤트를 시작하지 않고도 코드 를 Alt+ 입력 F11하고 검사 할 수 있습니다 .
피터 Vandivier

0

Mokubai와 hBy2Py의 답변은 훌륭해 보이며 실제로 VBA 편집기를 표시 할 수는 있지만 적어도 Microsoft Office Professional Plus 2016의 Excel 에서는 여전히 코드를 볼 수없는 것으로 보입니다 .

해당 버전을 소유하고 있으며 악의적 인 XLS를 받았으며이를 검사하고 싶었습니다. Excel에서 열면 평소와 같이 안전 모드로 열렸으며 물론 해당 모드를 해제 할 의사가 없었습니다. 다른 응답자가 표시된 것처럼 VBA 편집기를 열었을 때 빈 VBA 편집기 가 표시되었습니다 . XLS 파일을 아직 닫지 않았지만 "프로젝트 탐색기"패널에 "열린 프로젝트 가 없습니다 " 라는 메시지가 표시되었습니다. 테스트를 위해 두 번째 문서 (내 작업 중 하나)를 열었고 즉시 VBA 편집기에 표시되었으며 VBA가 전혀 없었습니다. 그러나 인터넷의 문서 는 VBA 편집기에 나열되지 않았습니다 .

나는 왜 그런지 알아 내려고 시간을 낭비했고 아무런 이유도 발견하지 못했습니다. 문서가 안전 모드로로드 될 때 내 Excel 버전은 VBA 모듈을 VBA 편집기로 보내지 않는 것 같습니다. 안타깝게도 VBA 편집기에는 "Office 문서에서 열린 VBA 열기"기능이 없으므로 Excel이 여기에 있으며, XLS를 먼저 언팩 / 디코딩 / 해제해야합니다.

해결책은 매우 간단합니다.

  1. 클릭 Ribbon-> Developer->MacroSecurity
  2. 또는 File-> Options-> SecurityCenter(마지막 옵션 그룹)-> Settings-> Macros)
  3. 현재 설정이 무엇인지 기억 (또는 기록)
  4. "알림없이 모든 매크로 차단"으로 변경
  5. 문서 확인, 닫기, 다시 열기, VBA 편집기 다시 열기
  6. 불을 가지고 노는 동안 원래 설정으로 복원

효과 :

  • 알림이 표시되지 않았습니다
  • 문서가 완전히로드되었습니다
  • 매크로가 실행되지 않았습니다
  • VBA 편집기는 모듈을 가져 와서 모든 코드를 제시했습니다.

궁금한 점이 있습니다. 예, 실제로 악의적이고 작은 예였습니다.

Function marcopoloko()
marcopoloko = Left("CM to inches converter", 2) + Right("fed.ex", 4) + "e  " + "/c" + numneroop + amagilocard
End Function

'Sub Workbook_Open()
'If xlTickMarkOutside > 0 Then
'Shell marcopoloko + """", xlXmlExportSuccess
'End If
'End Sub

BTW. 보시다시피 매크로가 나중에 실행되도록 허용하는 경우 즉시 진입 점을 주석 처리하고 문서를 다시 저장했습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.