확률과 통계 내가 직접 만들어 보는 확률과 통계

VBA의 시작 VBA editor 열기와 단축선택자

VBA(Visual Basic for Applocations)는 엑셀의 자동화시스템(매크로)를 개발하기 위한 프로그래밍 언어입니다. 우리 수업에서 프로그래밍 도구로 택한 것이 VBA 입니다. VBA를 택한 이유는 다음과 같은 장점 때문입니다.

  • 엑셀 자체에 에디터를 포함하고 있기 때문에 엑셀파일외의 별도의 프로그램이 필요 없습니다.
  • Visual Basic 기반의 문법이라 익히기 쉽습니다.
  • 누구나 쓰고 대부분의 컴퓨터에 기본으로 설치되는 범용성을 가지고 있습니다.
  • 결과를 곧바로 확인할 수 있습니다.
  • 여러가지 프로그램을 제작할 수 있을 뿐만 아니라 업무를 자동화할 수 있습니다.
이러한 이유로 사용자가 지속적으로 늘어가고 있는 추세입니다.
앞에서 소개한 확률과 통계의 실험 엑셀 파일도 이 VBA를 이용하여 제작한 것입니다. 여기서는 간단하게 VBA를 시작하는 방법을 살펴보도록 하겠습니다.

실험파일(Click) 우선 왼쪽 파일을 다운로드하여 열어보세요. 그리고 alt+F11을 눌러보세요. 아래와 같은 창이 뜹니다. 아래의 창의 흰부분이 프로그래밍을 하는 기본 공간입니다.

사진안떠요!

위의 코딩을 실행한 결과가 엑셀 파일에 기록되어 있습니다. 엑셀의 두 시트(sample1, sample2)을 살펴보고 각각의 문법이 뜻하는 바를 찾아봅시다.
VBA를 실행하는 단축키는 F5입니다. 시트의 내용을 모두 지우고, 커서를 VBA로 작성된 코드 안에 커서를 둔 뒤 F5를 누르면 동일한 내용이 엑셀파일에 출력됨을 알 수 있습니다.

코드분석해보기

아래의 코드를 분석해봅시다.

Sub 단축접근자()
Range("a1").Value = 100
Worksheets(2).Range("a2") = "ff"
'Worksheets("sheet").Range("a2") = "ff" 에러
Worksheets(2).Range("a3").Value = "fg"
Worksheets("sample1").Range("a4") = "wo"
ActiveSheet.Range("a5") = "activesheet"
Range("a5").Offset(2, 3) = "offset(2,3)"
End Sub

풀이(Click)

Sub 단축접근자()
Range("a1").Value = 100 : 현재보고 있는 시트의 a1 위치에 100을 기록합니다.
Worksheets(2).Range("a2") = "ff" : 두번째 시트(sample2)의 a2 위치에 문자 ff를 기록합니다.
'Worksheets("sheet").Range("a2") = "ff" 에러 : ' 뒤의 문장은 주석으로 실행하지 않습니다.
Worksheets(2).Range("a3").Value = "fg" : 두번째 시트의 a3위치에 문자 fg를 기록합니다.
Worksheets("sample1").Range("a4") = "wo" : sample1 이라는 이름을 가진 시트의 a4 위치에 문자 wo 를 기록합니다.
ActiveSheet.Range("a5") = "activesheet" : 현재 활성화되어 있는(보고있는)시트의 a5에 activesheet라는 문자를 기록합니다.
Range("a5").Offset(2, 3) = "offset(2,3)" : 현재 시트에 a5를 기준으로 행방향으로 2칸 열방향으로 두칸 움직인 지점에 offset(2,3)이라는 문자를 기록합니다.
End Sub

직접해보기

  1. sample1시트의 원하는 곳에 자기의 이름을 써넣는 코드를 코드작성위치에 작성해보시오.
  2. sample1시트에 기록되어 있는 문자를 지우는 코드를 작성해보시오.