|
?프로시저 (Procedure) 프로시저는 일정한 기능을 수행하는 코드 덩어리이다.
[Private | Public | Friend] [Static] Sub 프로시저이름 [(매개변수)] 실행코드 [Exit Sub] '현재 Sub를 빠져나간다. 실행코드 End sub |
[Private | Public | Friend]는 제한자라고 하며, 선언하지 않으면 Public로 선언된다. 이벤트 핸들러 또한 일종의 프로시저라고 생각하면 된다.(정확히는 메소드라고 책에 나온다.) Private Sub Command1_Click() 이런거 많이 봤을거라 생각된다. 이게 명령버튼에 클릭이벤트가 발생했을때의 이벤트 핸들러를 정의해놓은 것이다. 이런거 그냥 사용자가 맘대로 만들어서 사용해도 된다. Private Sub 울트라프로시저() Msgbox "울트라프로시저가 호출되었습니다." End Sub 이렇게 만들고 다른 이벤트 핸들러에 "call 울트라프로시저" 라고 써주면 이 프로시저가 실행된다. 같은 코딩이 여러 이벤트 핸들러에 공통으로 들어간다면 공통부분만 프로시저를 하나 따로 만들어서 필요할때 Call만 해주면 된다. Call은 생략가능하다. 그냥 프로시저이름만 적어주면 호출된다. 위에서 Exit Sub 가 나오는데 이건 말그대로 Sub 를 탈출한다는 뜻이다.
?함수(Function) 프로시저와 비슷한 기능이지만 연산결과의 리턴값을 받을 수 있다는 차이점이 있다. 새로운 함수를 만들어서 사용할 수 있다. len(값) 이라는 함수를 아시나요? len 이라는 함수는 값으로 받은 텍스트의 길이를 알려주는 함수이다. 이런 함수를 사용자가 만들어서 사용할 수 있다는 이야그다. 참고] len("가나다라마") 라고 하면 5라는 값이 리턴된다.
[Private | Public | Friend] [Static] Function 함수이름 [(매개변수)] [As 데이터형] 실행코드 [자신의 함수명 = 수식] [Exit Function] 실행코드 End sub |
예제) 어처구니없는 예제하나 Private Function aaa(i As Integer) aaa = i + 100 End Function
Private Sub Command1_Click() Text1 = aaa(10) 'Text1.Text 는 110 이된다. End Sub
위에서처럼 컨트롤의 기본 속성은 적지않아도 된다. text1.text 라고 사용하지만 text1 이라고만 사용해도 텍스트박스의 기본 속성인 text 가 사용된다. (권장사항 아님)
|