VBA Tipz
Sub와 Function의 차이점
쵸코난
2022. 8. 26. 22:51
VBA에서 Sub 와 Function은 서로 비슷해서 혼용해서 사용하기도 하지만
아래와 같은 차이점이 존재합니다.
Sub (Routine):
- 중규모로 주로 공개적, 대외적으로 사용.
- 주로 리턴값 없음
- Alt f8 누르면 목록에 나옴, Private Sub로 쓰면 안나옴
- AdressOf 로 Timer API 등에서 호출가능
- mySub x로 호출. mySub(x) 호출 불가. Call mySub(x) 가능(byVal)
- 여러가지 상/하위 Sub 나 Function을 호출
- 도형이나 버튼에 매크로 지정 가능
- 빠른실행에 추가 가능
Function:
- 소규모로 주로 내부적으로 사용.
- 주로 리턴값 있을 때 많음. 없어도 무방.
- 이유 없는 소규모 단순 반복작업에 적합.
- Alt f8 눌렀을 때 함수목록에 나오지 않음.
- AddressOf 의 인수로 쓰면 오류 발생.
- myFunc(x) 또는 Call myFunc(x) 가능
- 엑셀에서 '사용자정의함수(User Defined Function)'로 사용 가능
- 도형 버튼에 매크로 지정 불가능
- 빠른실행에 추가 불가