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)'로 사용 가능
- 도형 버튼에 매크로 지정 불가능
- 빠른실행에 추가 불가
'VBA Tipz' 카테고리의 다른 글
VBA 코딩 초보 주의 사항 혹은 좋은 습관 (0) | 2022.03.19 |
---|---|
파워포인트 VBA로 도트 하트 그리기 (0) | 2022.03.17 |
파워포인트 VBA 어디서 배워요? (0) | 2022.03.17 |
파워포인트 VBA 어떻게 시작할까요? (0) | 2022.03.17 |
64비트 호환 API 선언 모음 (0) | 2019.10.29 |
그룹개체를 복사하면 Parent/Child 속성을 잃어버린다. (2) | 2017.01.12 |
Collection: 배열을 넘어서는 컬렉션 Type 소개 (0) | 2017.01.12 |
for each의 경고 (0) | 2017.01.12 |
최근댓글