2014-03-05 11 views
3

는 이제 내가VBA 사용자 정의 폼

Dim form as MyUserForm 
Set form = New MyUserForm 
form.SomeVar = "Hi" 
form.Show ' Displays "Hi" somewhere on the form 

처럼 사용하고 모든 벌금과 멋쟁이 MyUserForm라는 사용자 정의 폼이 있다고 가정 해 봅시다. 그러나 다음은, 이것은 나를 홀수 파업 것입니다뿐만 아니라 작동 : 유형이 정확하게 클래스MyUserForm을 일부 암시 적으로 선언 객체MyUserForm있다처럼 보인다

MyUserForm.SomeVar = "Hi" 
MyUserForm.Show 

! VBA는 실제로 여기서 무엇을하고 있습니까? 이 이상한 관용구를 지배하는 규칙은 무엇입니까? 고맙습니다.

+0

을 두'MyUserForm' 인스턴스를 만든 다음 통화'MyUserForm.Show' 당신은 계층 구조를 발견 할 것입니다. 두 개의'MyUserForm' 중 하나는 활성 userform이며, 당신은'MyUserForm '에 의해 그것을 참조 할 수 있습니다. '클래스 이름을 사용하여 두 개 이상의 userform을 호출하는 것은 좋지 않습니다. ** 항상 ** 특정 인스턴스에 대한 참조를 저장하는 변수 이름을 사용하는 것이 좋습니다. –

+0

나는 그 질문을 잘 이해하지 못한다. 사용자 정의 폼이 UserForms 컬렉션에 추가되면 VBA 코드의 이름으로이를 참조 할 수 있습니다. 하나의 인스턴스가 즉시 사용할 준비가되었습니다. 인스턴스의 새 인스턴스를 만들 필요가 없습니다. 이 중 몇 가지를 원할 경우이 작업을 수행해야합니다. – Kapol

답변

1
+0

감사합니다! 이것은 정확히 내가 찾고 있었고 스스로 찾을 수 없었습니다. –

관련 문제