brunch

You can make anything
by writing

C.S.Lewis

by Raphael Lee Nov 09. 2018

VBA Sample

삼남매 아빠 = 애국자

0. VBA에서의 간단한 Tip

   - 도구 > 매크로 > 보안 메뉴에서 보통으로 하면 파일을 열 때 매크로를 포함할 것인지 선택할 수
   있으므로 이 설정을 권장합니다.

   - 시트에서 Alt + F11로 편집창을 열 수 있으며 Alt + F8로 매크로를 실행할 수 있습니다.

   - 도구 > 매크로 > 기록을 선택하면 그 순간부터 정지 버튼을 누를때까지 임의의 Procedure에 일련의
   동작이 기록되므로 코딩의 양을 상당히 줄일 수 있습니다.

   - VBA는 line단위로 실행되므로 문장 끝이라는 기호가 따로 필요치 않습니다.
   굳이 기록할 수는 있지만, 권장하지 않겠습니다.

   - VBA를 사용하는 경우는 주로 loop의 수행이 많으므로 Excel의 기본 기능을 이용하여 Data를 loop
   수행에 적합한 형태로 만드는 것이 중요합니다.


1. 기본 문법

   - 변수 선언은 "dim 변수명 as 데이터타입"으로 선언합니다.

   - Macro procedure는 [Public|Private] Sub로 시작하여 End Sub으로 끝납니다.
   (Function은 결과를 Return합니다. - 초보자에게 비권장 - )


2. 주로 사용하는 DataType

   - VBA에서 주로 사용하는 DataType에는 Integer와 String이 있으며 그 외의 타입은 사용하지 않아도
   어느정도 까지는 VBA 프로그램을 작성하는 것이 가능합니다.

   - 간혹 숫자의 크기가 너무 커서 Double 타입을 사용하기도 합니다.


3. IF

   - IF 구문은 IF condition Then statements [Elsif Then statements … Else statements] End IF
   형태입니다.

   - Else if와 Elsif 의 차이는 일반적인 프로그래밍에서의 ELSE IF는 VBA에서는 ElseIf로(공백없이)
   사용되며, VBA에서의 Else if는 Else 절 안에 포함되어 있는 IF로 해석됩니다.


4. FOR / WHILE

   - For 구문은 다음 예시와 같은 형태를 가집니다.

   - ex >>
Dim loopCount As Integer
For loopCount = 0 To 100
statements

Next loopCount


   - While 구문은 loop의 횟수가 명확하지 않은 경우에 주로 사용되지만, 잘 못 수행하면 Excel이 작동
   불능이 되므로(이미 열려있던 엑셀 문서 전체가) 가급적 사용하지 않는 것이 좋습니다.

   - While 구문은 While condition statements Wend 형태이며, 중간에 일정 조건이 되면 While을 중지
   해야 하므로 주로 IF문과 함께 사용됩니다.


5. 셀 참조

   - 프로그램적으로 특정 셀을 선택할 때는 Sheets("sheet name").Range("cell position").Select 을
   사용합니다.

   - 위에서 선택된 셀을 기준으로 ActiveCell.Offset(row, column)를 사용하여 위치를 이동해 가며
   연산합니다.


6. 실습문제

   - 실습문제는 Samples 시트에 있는 테이블 컬럼 명세서로 Create 문장을 만들어서 Results 시트의
   셀에 입력하는 것입니다.

** 코드 등은 첨부 파일을 참조하세요.

매거진의 이전글 SQL 작성 요령
브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari