2017-11-09 11 views
0

아래 링크에서 Gaus Shaikh의 질문과 동일한 문제가 발생한다고 생각하지만 그 당시에는 이해하지 못했다고 생각합니다. 나는이 주제에 대해 다른 사람들에게 도움을주기 위해 다른 말을 쓰려고 노력한다.숨겨진 VBA 코드 (프로젝트가 잠겨있어 보지 못함)가 사용자 양식 매크로를 거부 함

내 의견으로는 가우스 질문 제목이 오해 될 수 있기 때문에 나는 또 다른 질문을 만듭니다.

요약하면 사용자 폼을 생성하는 Excel 매크로를 처리하는 데 문제가 있습니다. 실제로 VBA 프로젝트가 암호로 보호되어 있으면 매크로가 작동합니다. 이상한 점은, Visual Basic Editor-> VBA 프로젝트 속성 -> 보호 -> 프로젝트보기 -> pw 삽입 -> 잠금) 코드를 숨기면 프로젝트가 작동하더라도 매크로가 작동하지 않는다는 것입니다. 암호로 보호되지 않습니다.

여기에 붙어 있습니다. 솔루션을 찾을 수 없습니다. 너희들 생각 나니? (2013 년 엑셀 사용 중)

미리 감사드립니다!

GAUS 샤이 크 질문 : VBA password protected project not opening userform

N.B : 기본적으로, 사용자 양식을 방출하는 매크로를 제공 "런타임 오류 50289. 프로젝트가 보호됩니다." 예를 들어, 코드가 숨겨져 있고 코드가 표시되면 작동하는 경우 빈 사용자 양식을 생성하는 다음 매크로는 실패합니다.

Public Sub goUserForm() 

    Dim mainframe As Object 

    'Set main frame 
    Set mainframe = ThisWorkbook.VBProject.VBComponents.Add(3)   

    'Show the form 
    VBA.UserForms.Add(mainframe.Name).Show 

End Sub 

문제를 완전히 이해하려면 워크 시트에서이 매크로를 시도한 다음 코드를 숨기십시오. 문서를 저장하고 닫은 다음 문서를 엽니 다. 코드를 표시하지 않으면 매크로가 작동하지 않습니다.

+0

코드를 작동에 접근하지 작동하지 않습니다. 그래서, 더 많은 정보와 코드 조각을 주어야한다고 생각합니다. – Storax

+0

빠른 답장을 보내 주셔서 감사합니다. 오류에 대한 추가 정보를 추가하는 게시물을 편집했습니다. –

답변

1

이제는 더 명확 해졌습니다. VBA 프로젝트는 보호되므로 코드가 없어도 액세스 할 수 있습니다. 다른 모든 코드가 작동합니다. 그래서,이

Set mainframe = ThisWorkbook.VBProject.VBComponents.Add(3) 
VBA.UserForms.Add(mainframe.Name).Show 

코드는이 같은 VBA 프로젝트가 제시 한대로 작동하지 않을 수 있습니다 이전 게시물에서

UserForm2.Hide 
UserForm1.Show 
+0

힌트 Storax 주셔서 감사합니다. 프로젝트에 사용자 양식이있는 경우 코드가 작동합니다. 반면에 매크로를 통해 프로젝트에 사용자 폼을 만들고 추가해야하는 경우 어떻게해야합니까? 프로젝트에 액세스하지 않고 다음 행을 어떻게 변경하여 오류를 피할 수 있습니까? 'set mainframe = ThisWorkbook.VBProject.VBComponents.Add (3)' 'VBA.UserForms.Add (mainframe.Name) .Show' –

+0

코드를 통해 사용자 폼을 추가해야하는 경우 먼저 VBA 프로젝트의 잠금을 해제해야합니다 . 내 지식에는 다른 방법이 없습니다. – Storax

+0

코딩을 통해 내 코드를 볼 수 없도록 보호 할 수 있습니다. 하지만이 보호 기능을 해제하면 매크로를 실행하고 다시 활성화하면 자동으로 다음 번 다시 시작할 때까지 코드가 표시됩니다. ( –