vb6.0/vba [vb6.0/vba] CallByName - Application.Run 과는 다른 텍스트(String)로 프로시저 호출
페이지 정보
본문
CallByName(object, procedurename, calltype, _ [ argument1,..., argumentn])
Constant | Value | Description |
vbGet | 2 | The called procedure is a Property Get |
vbLet | 4 | The called procedure is a Property Let |
vbMethod | 1 | The called procedure is a method; this can be a Sub or a Function within object |
vbSet | 8 | The called procedure is a Property Set |
사용법은 간단합니다.
아래와 같이 폼에서 체크박스를 선택한 것에 따라서 프러시 저가 실행되게 합니다.
Private Sub CommandButton1_Click()
Dim i As Integer, ck As Boolean
i = (Not CheckBox1.Value) + 1
i = i + ((Not CheckBox2.Value) + 1) * 2
i = i + ((Not CheckBox3.Value) + 1) * 3
ck = i > 0
ck = ck = (i < 4)
If ck Then
CallByName Me, Choose(i, "가", "나", "다"), VbMethod
Else
MsgBox "하나만 체크하세요."
End If
End Sub
Public Sub 가()
MsgBox "가를 호출하였습니다."
End Sub
Public Sub 나()
MsgBox "나를 호출하였습니다."
End Sub
Public Sub 다()
MsgBox "다를 호출하였습니다."
End Sub
이런식으로 상요할 수 있습니다.
Dim ctlTarget As Control
Set ctlTarget = CallByName(UserForm1, "CheckBox1", VbGet)
이런식으로 VbGet 이라는 Type을 이용해서 컨트롤을 불러올수도 있습니다..
관련된 자료는 많지 않지만 구글링을 해보면 자료는 어렵지 않게 구할 수 있습니다.
무엇보다 초급 프로그래머는 접할일이 없겠으나 알아두면 유용한 함수입니다.
- 이전글[vba] 네이버 증권정보 크롤링(파싱)하기 20.02.27
- 다음글[vb6.0] 실행돼있는 상태에서 자신 파일 삭제 20.02.24
댓글목록
등록된 댓글이 없습니다.