이제 VBA를 이용하면서 제일 많이 쓰게 될 코드 창(Code window)에서 코드를 작성하고 실행하는 방법에 대해 알아보도록 하겠습니다.
(1) [파일] - [새로 만들기] - [새 통합 문서] 명령을 선택하여 새로운 통합 문서를 만듭니다.
(2) [개발도구] - [Visual Basic] 명령을 선택하여 VB Editor 창을 실행합니다.
(3) [삽입] - [모듈] 명령을 선택하면 모듈이 삽입됩니다.
(4) 코드 창에 아래와 같이 코드를 입력합니다.
(5) 입력이 끝났으면 실행을 시키는 데에는 몇 가지 방법이 있습니다. 실행하고자 하는 코드 내에 커서를 위치시킨 다음,
① F5 키를 누르는 방법
② [실행] - [Sub/사용자 정의 폼 실행] 명령 클릭
③ 도구 모음에 있는 실행 아이콘(▶) 클릭
위 세 가지 방법 중 하나를 선택하면 다음과 같은 메시지 박스가 나타날 것입니다.
[예] 또는 [아니오] 버튼 중 하나를 눌러보면 코드로 작성한 메시지가 나타납니다.
이처럼 Sub로 시작해서 End Sub로 끝나는 코드를 프로시저 또는 서브 프로시저라고 부릅니다.
즉 Sub ~ End Sub 사이에 코드를 작성함으로써 컴퓨터에게 작업 지시를 내립니다.
Application.UserName 이라는 것은 현재 애플리케이션(엑셀)의 사용자명을 알아내는 명령어입니다.
엑셀을 설치할 때 사용자 기본 정보를 입력하게 되는데 이 때 등록된 사용자명을 알아냅니다.
그런 다음 & 연산자를 이용하여 두 개의 문자열로 합쳐서 strMsg라는 문자열 변수에 값을 저장해 둡니다.
MsgBox 함수는 메시지 박스를 화면에 띄워주는 함수입니다.
그런데 MsgBox 함수에 보니 vbYesNo라는 단어가 보이시죠?
이것을 내장 상수(Built-in constants)라고 하는데 MsgBox에 어떤 버튼이 표시되도록 할 것인지를 지정합니다.
아래와 같이 다양한 값을 지정해 줄 수 있습니다.
여기서 상수 대신 값을 써 주어도 됩니다. 즉 아래 두 문장의 결과는 같습니다.
MsgBox "안녕하세요?", vbYesNo
MsgBox "안녕하세요?", 4
화면에 두 개의 버튼이 있는 MsgBox가 나타나는데 사용자는 이 중에서 하나의 버튼을 누르게 됩니다.
예와 아니오 중 어느 것을 선택했는지 알아야 나중에 다른 작업을 할 수 있겠지요?
어떤 버튼을 눌렀는지를 파악해서 intAnswer라는 변수에 담아두는 과정이 아래의 한 줄로 해결이 됩니다.
intAnswer=MsgBox(strMsg, vbYesNo)
워크시트에서 If 구문을 사용할 때, [=If(조건식, 참인 경우, 거짓인 경우)]
이러한 형태로 사용을 하였지만 VBA 상에서도 비슷한 형태이긴 하지만 조금은 다르게 사용합니다.
intAnswer라는 변수에 저장된 값이(사용자가 선택한 버튼) vbYes 이면 "예스폼 엑셀강좌를 방문해주셔서 감사합니다." 메시지를,
저장된 값이 vbNo라면 "유감이군요. 좋은 하루 되시길 바랍니다." 라는 메시지 박스가 화면에 나타납니다.
------------------------------------------------------------------------------------------------
If intAnswer = vbYes Then
MsgBox "예스폼 엑셀강좌를 방문해주셔서 감사합니다.", vbInformation
Else
MsgBox "유감이군요. 좋은 하루 되시길 바랍니다.", vbInformation
End If
------------------------------------------------------------------------------------------------
이 때 MsgBox 함수의 반환값은 상수 형태를 사용해도 되고 값 형태를 사용해도 됩니다. 즉 위의 코드는 아래와 같이 바꿀 수 있습니다.
------------------------------------------------------------------------------------------------
If intAnswer = 6 Then
MsgBox "예스폼 엑셀강좌를 방문해주셔서 감사합니다.", vbInformation
Else
MsgBox "유감이군요. 좋은 하루 되시길 바랍니다.", vbInformation
End If
------------------------------------------------------------------------------------------------
'강좌(교육)' 카테고리의 다른 글
[엑셀 VBA강좌] VBA_06 엑셀의 다양한 구성요소(애플리케이션, 오브젝트, 프로퍼티, 메서드)엑셀교실 (0) | 2016.12.15 |
---|---|
[엑셀 함수강좌] 수식 논리조건 판단(AND, OR)엑셀교실 (0) | 2016.12.15 |
[엑셀 메뉴강좌] 셀에 데이터 입력하기엑셀교실 (0) | 2016.12.15 |
[엑셀 VBA강좌] VBA_04 매크로 기록과 실행엑셀교실 (0) | 2016.12.15 |
[엑셀 함수강좌] 자격증 등급 및 합격여부 계산(IF)엑셀교실 (0) | 2016.12.15 |