[6.0] 유용한 함수 - #1. CallByName - 이름으로 대상을 호출한다.
이 함수는 어떤 대상을 호출(Call)하거나, 취득(Get) 할 수 있으며 값을 설정(Let)할 수 있고, 대상을 변경(Set)할 수 있는
함수입니다. 즉.. MsgBox Text1.Text를 MsgBox CallByName(Text1, "Text", vbGet) 같이 쓸 수 있습니다.
하지만 직접 호출하는것이 CallByName보다 더 빠르므로, 특별한 용도가 아니면 거의 사용할 일이 없을겁니다.
* 필자의 경우, 과거 프로그램을 개발할 때 헥스 코드 에디터 등에서 Text1.Text에서 이 'Text'같은 속성명이나 함수명을
숨기기 위한 용도로 사용했었습니다.
이 함수는 아래와 같은 형태를 가지고 있습니다.
반환값 = CallByName(객체 As Object, (속성이나 함수명) As String, 방법 As vbCallType, 넘겨줄 값 ...)
객체는 말 그대로, 변수나 함수 등 호출할 대상이 들어있는 객체를 말하며,
(Ex: Set aa = Form1.Text1 => Set aa = CallByName(Form1, "Text1", vbGet),
Form1.Hide => Call CallByName(Form1, "Hide", vbMethod) ...)
속성명은 호출할 대상의 이름을 말합니다. 그리고 방법은, 이 속성명에서 지정한 것을 어떻게 호출할 것인지를 입력하면 됩니다.
vbMethod면 Form1.Hide 같이 메서드 형태로 호출되고, vbLet은 XX = "값" 처럼 대입할 때 사용되며, ( 이 때, 인자에 값이 들어있어야합니다. )
넘겨줄 값에는 함수일 경우 인자(parameter; 넘겨줄 값, 인수)를 순서대로.. vbLet문일 경우, 설정할 값을 입력하시면 됩니다.
아래는 활용 예제입니다.
Text1.Text = "가나다"
=>
CallByName Text1, "Text", vbLet, "가나다"
MsgBox Text1.Visible
=>
MsgBox CallByName(Text1, "Visible", vbGet)
Call Me.Hide
=>
Call CallByName(Me, "Hide", vbMethod)
또 다른 활용.
메모장이나 다른 분석 프로그램으로 명령어가 노출되지 않게 하실 때는,
두번째 String형을 암호화해놓고 실행시 복호화처리되게끔 코딩하시면 됩니다.
작성자 : 수학쟁이(NAVER)
첫댓글 잘봣습니다~
잘봣습니다~
잘봣습니다~
잘봣습니
잘봣습니
잘봣습니
잘봣습니
잘봣습니다~
잘봣습니다~