이 섹션에서는 매크로가 작성되므로 VBA이 무엇인지 고려합니다.
VBA은 Microsoft에서 개발한 임베디드 프로그래밍 언어(Visual Basic for Application를 나타냄)입니다. 이 언어는 독립적이지 않으며 MS Office 패키지의 프로세스 자동화에만 사용됩니다. VBA은 Excel뿐만 아니라 Access, Word 및 제품군의 기타 프로그램에서도 널리 사용됩니다.
VBA은 누구나 배울 수 있는 간단한 프로그래밍 언어입니다. 일단 배우면 Excel 명령을 내릴 수 있고, 열, 행, 셀 값으로 수행할 작업, 워크시트 이동/추가/정렬, 미리 프로그래밍된 메시지 표시, 자신만의 수식 및 함수 작성 등을 할 수 있습니다. 언어의 본질은 객체를 다루는 것입니다.
VBA 코드로 작업하려면 기본적으로 Excel에 이미 설치되어 있는 편집기(Visual Basic Editor)가 필요합니다. "Alt+F11" 키 조합을 눌러 열 수 있습니다.
VBA의 객체가 무엇인지 이해해 봅시다.
VBA 개체는 요소, 구조 입자 Excel, 즉 책, 시트, 범위, 셀입니다.
VBA 개체에는 계층 구조가 있습니다. 즉, 서로 종속되어 있습니다. 도식적으로 Excel의 계층 구조는 다음과 같이 나타낼 수 있습니다.
가장 중요한 개체는 Excel 프로그램 자체에 해당하는 Application입니다. 다음은 Workbook(책), Worksheet(시트), Range(범위 또는 개별 셀)입니다.
예를 들어 워크시트에서 "A1" 셀을 참조하려면 계층 구조를 고려하여 다음 경로를 작성해야 합니다.
Application.Workbooks("Archive").Worksheets("Sheet1").Range("A1")
따라서 우리는 Excel에서 가장 작은 개체인 셀을 참조하는 방법을 배웠습니다.
차례로 VBA 개체는 "컬렉션"에 속합니다.
VBA 컬렉션은 동일한 클래스(책, 시트 등)의 개체 그룹(배열)입니다. 예, 모든 Worksheet 개체는 Worksheets 컬렉션의 요소입니다. 결과적으로 컬렉션도 개체입니다.
동일한 개체가 여러 컬렉션에 속할 수 있습니다. 예를 들어 Worksheet 개체도 Sheets 컬렉션에 속합니다. Sheets 컬렉션에는 통합 문서에 있는 모든 시트(시트로 간주되는 차트(Chart)와 데이터 시트(Worksheet))가 모두 포함되어 있습니다.
VBA Excel에는 다음 컬렉션이 있습니다.
VBA의 각 개체에는 속성이 있습니다. 예를 들어 Range 개체에는 Value 또는 Formula 속성이 있습니다.
Worksheets("Sheet1").Range("A1").Value 또는 Worksheets("Sheet1").Range("A1").Formula
이 예에서 속성은 셀에 입력된 값이나 입력된 수식을 표시합니다.
또한 Formula 속성을 통해 수식을 얻을 수 있을 뿐만 아니라 적어둘 수도 있습니다.
MsgBox Range("A1").Formula - "A1" 셀의 수식이 포함된 메시지를 받게 됩니다.
Range("B12").Formula = "=2+6*100" - 셀 "B12"에 수식 "=2+6*100"을 입력합니다.
이제 범위나 셀의 내용을 조작하는 방법을 살펴보겠습니다. 이를 위해 VBA에는 소위 메서드("무엇을 해야 할지" 명령)가 있습니다. 코드를 작성할 때 메소드는 점으로 객체와 구분됩니다. 예를 들면 다음과 같습니다.
Range("A1").Select 또는 Cells(1,1).Select
이 방법은 "A1" 셀을 선택(Select)하도록 지정합니다.
다음으로 이 셀의 값을 삭제하겠습니다. 이를 위해 다음 코드를 작성하겠습니다.
Selection.ClearContents
여기서 프로그램은 우리가 선택한 것(Selection)을 "취하고" 해당 내용을 지웁니다(ClearContents).