본문 바로가기

엑셀/VBA

엑셀 VBA - Sub 프로시저

반응형

엑셀 VBA에서 매크로를 작성할 때 Sub 프로시저를 생성하여 코딩합니다. 이 Sub 프로시저는 VBA 프로시저 중 하나이며 그 외에 이벤트 프로시저, Function 프로시저, Property 프로시저가 있습니다. 

Function 프로시저는 프로그래밍에서 함수를 사용하는데 이런 역할이라고 생각하시면 될 것 같습니다. 함수는 값을 입력받아 계산 등의 처리를 하여 그 결괏값을 반환하게 되는데 Function 프로시저도 함수와 같이 결괏값을 반환하며 보통 엑셀에 없는 함수를 프로시저로 작성하여 사용합니다.

 

 

 

1. Sub 프로시저

 엑셀 매크로로 작성되는 프로시저는 기본적으로 Sub 프로시저를 사용하여 만들어집니다. VBA에서 가장 일반적으로 사용되는 프로시저입니다. 사용 방법은 다음과 같은 구조로 사용합니다.

 

   Sub 프로시저명(매개 변수) 

          실행문 1

          실행문 2

              :

              :

          실행문 n

   End Sub

 

프로시저명은 작성할 때 주의할 점이 있습니다.

① 모든 문자를 사용하여 작성할 수 있으나 첫 글자는 영문이나 한글로 시작해야 합니다.

② 이름 사이에 공백이 있으면 안 됩니다. (띄어쓰기가 불가합니다.)

③ VBA에서 사용하는 명령어와 동일한 이름은 사용할 수 없습니다.

 

만약, 실행문 중간에 Sub 프로시저를 빠져나가고 싶을 때는 Exit Sub이라 실행문에 작성합니다. Sub 프로시저가 실행문을 실행하다가 Exit Sub문을 만나면 Sub 프로시저를 빠져나가 종료하게 됩니다. 그러면 그 이후의 실행문은 실행되지 않고 빠져나오게 됩니다. Sub 프로시저를 작성하게 되면 마지막에는 반드시 End Sub을 작성하여야 하며 이는 VBA 프로그램에서 자동으로 생성해줍니다. End Sub는 Sub 프로시저가 종료되었다는 것을 표시하여 알려주는 기능을 합니다.

 

 

 

2. Sub 프로시저 작성

 엑셀 파일 메뉴에서 개발 도구-코드-Visual Basic을 클릭하여 VBE 창을 엽니다. VBE 메뉴에서 삽입-모듈을 클릭하여 Module을 작성합니다.

다시 VBE 메뉴에서 삽입-프로시저를 클릭한 후 [그림 1]과 같이 이름을 '인사_Hello'라 작성합니다.

 

프로시저_추가
[그림 1] 프로시저 추가

이름 작성을 하고 확인 버튼을 클릭합니다.

 

모듈_창_Sub_프로시저
[그림 2] 모듈 창-Sub 프로시저

[그림 2]와 같이 인사_Hello라는 이름으로 Sub 프로시저가 자동으로 작성됩니다.

 

그럼 [그림 2]와 같이 작성된 모듈 창에 Sub 프로시저를 아래와 같이 코딩합니다.

 

   Public Sub 인사_Hello()
       MsgBox "Welcome to Hello World"
   End Sub

 

프로시저를 실행하면 [그림 2]과 같이 메시지 창이 뜨면서 내용에 Welcome to Hello World라고 쓰인 것을 보실 수 있습니다.

 

Sub_프로시저_실행_결과
[그림 3] Sub 프로시저 실행 결과

3. 주석 작성

 프로그래밍을 하다 보면 코딩 내용 중에 설명이나 표시를 해두고 싶은 경우가 있습니다. 이것은 현재 작성한 부분을 코딩하게 된 이유나 동작 설명 등을 해놓아 나중에 이 코딩을 보게 되었을 때 코딩 취지 등을 빠르게 파악하기 위함입니다. 이럴 때 사용하는 것이 주석입니다.

 

주석은 코딩 창에서 작은 따옴표(')를 사용하여 작성합니다.

위에서 작성한 인사_Hello 위에 아래와 같이 코딩합니다.

 

   'Sub 프로시저 작성 시작

   Public Sub 인사_Hello()
       MsgBox "Welcome to Hello World"
   End Sub

 

'Sub 프로시저 작성 시작은 코딩창에서 작성 완료하면 초록색으로 표시되는 것을 보실 수 있습니다. 이것은 주석 문을 나타내는 것으로 VBA 실행할 때 주석문은 실행에 전혀 관여하지 않습니다. 단지 프로그래머가 코딩 내용을 파악하기 쉽게 주석문을 작성하면 됩니다.

 

반응형