거의 모든 Microsoft Office 제품에서 실행되는 VBA 프로그래밍 플랫폼은 누구나 해당 제품의 사용을 향상시키는 데 사용할 수 있는 가장 강력한 도구 중 하나입니다.
이 초보자를 위한 VBA 가이드에서는 Office 응용 프로그램에 개발자 메뉴를 추가하는 방법, VBA 편집기 창에 들어가는 방법, Excel, Word, Powerpoint, Outlook 및 OneNote.
이 VBA 가이드는 최신 버전의 Microsoft Office 제품을 사용합니다. 이전 버전을 사용 중인 경우 스크린샷과 약간의 차이가 있을 수 있습니다.
VBA 편집기 활성화 및 사용 방법
이 가이드에 사용된 모든 Office 제품에는 참조된 개발자 메뉴가 없다는 것을 알 수 있습니다. 개발자 메뉴는 Excel, Word, Outlook 및 Powerpoint에서만 사용할 수 있습니다. OneNote는 응용 프로그램 내부에서 VBA 코드를 편집하는 도구를 제공하지 않지만 여전히 OneNote API를 참조하여 다른 Office 프로그램에서 OneNote와 상호 작용할 수 있습니다.
앞으로 있을 고급 VBA 가이드에서 이 작업을 수행하는 방법을 배우게 됩니다.
- 사무용 제품에서 개발자 메뉴를 활성화하려면 파일 메뉴에서 옵션을 선택합니다. 왼쪽 탐색 메뉴에서
- 옵션 메뉴 팝업이 표시됩니다. 리본 사용자화를 선택합니다. 왼쪽 탐색 메뉴에서.
왼쪽 목록에는 해당 Office 응용 프로그램에서 사용할 수 있는 모든 메뉴와 메뉴 명령이 포함됩니다. 오른쪽 목록은 현재 사용 가능하거나 활성화된 목록입니다.
- 오른쪽 목록에 개발자가 표시되어야 하지만 활성화되지는 않습니다. 개발자 메뉴를 활성화하려면 확인란을 선택하기만 하면 됩니다.
- 개발자가 표시되지 않는 경우 오른쪽에서 사용 가능한 다음 왼쪽 변경 명령 선택 드롭다운에서 모든 명령으로 . 개발자 찾기 목록에서 추가>>를 선택합니다. 리본에 해당 메뉴를 추가하려면 중앙에 있는
- 확인 선택 완료되면.
- 개발자 메뉴가 활성화되면 기본 애플리케이션 창으로 돌아가서 개발자를 선택할 수 있습니다. 상단 메뉴에서.
- 그런 다음 코드 보기를 선택합니다. 리본의 컨트롤 그룹에서 VBA 편집기 창을 엽니다.
- 다음 섹션에서 배울 코드를 입력할 수 있는 VBA 편집기 창이 열립니다.
- 매일 사용하는 몇 가지 Office 응용 프로그램에 개발자 메뉴를 추가해 보십시오. VBA 편집기 창을 여는 데 익숙해지면 이 가이드의 다음 섹션을 계속 진행하세요.
초보자를 위한 일반 VBA 프로그래밍 팁
VBA 편집기가 열리면 왼쪽 패널의 탐색 옵션이 Office 응용 프로그램마다 다르게 보입니다.
VBA 코드를 배치할 수 있는 사용 가능한 개체는 응용 프로그램에 있는 개체에 따라 다르기 때문입니다. 예를 들어 Excel에서 통합 문서 또는 시트 개체에 VBA 코드를 추가할 수 있습니다. Word에서 문서에 VBA 코드를 추가할 수 있습니다. Powerpoint에서는 모듈에만 적용됩니다.
따라서 다양한 메뉴에 놀라지 마십시오. VBA 코드의 구조와 구문은 모든 응용 프로그램에서 동일합니다. 유일한 차이점은 참조할 수 있는 개체와 VBA 코드를 통해 해당 개체에 대해 수행할 수 있는 작업입니다.
VBA 코드를 통해 수행할 수 있는 다양한 개체와 작업에 대해 알아보기 전에 먼저 VBA 코드를 작성할 때 사용할 수 있는 가장 일반적인 VBA 구조와 구문을 살펴보겠습니다.
VBA 코드를 넣을 위치
VBA 편집기에 있을 때 편집 창 상단에 있는 두 개의 드롭다운 상자를 사용하여 코드를 첨부할 개체와 코드를 실행할 시기를 선택해야 합니다.
예를 들어 Excel에서 워크시트를 선택하면 및 활성화 , 코드는 워크시트가 열릴 때마다 실행됩니다.
VBA 코드를 트리거하는 데 사용할 수 있는 다른 워크시트 작업에는 워크시트가 변경될 때, 워크시트가 닫힐 때(비활성화됨), 워크시트 계산이 실행될 때 등이 있습니다.
편집기에서 VBA 코드를 추가할 때 항상 개체에 VBA 코드를 배치하고 해당 코드를 트리거하는 데 사용하려는 올바른 작업을 사용해야 합니다.
VBA IF 문
IF 문은 다른 프로그래밍 언어에서 작동하는 것처럼 VBA에서도 작동합니다.
IF 문의 첫 번째 부분은 조건 또는 조건 집합이 참인지 여부를 확인합니다. 이러한 조건을 AND 또는 OR 연산자로 결합하여 함께 연결할 수 있습니다.
한 가지 예는 스프레드시트의 등급이 "합격" 등급보다 높거나 낮은지 확인하고 다른 셀에 합격 또는 불합격 상태를 할당하는 것입니다.
If Cells(2, 2)> 75 Then Cells(2, 3) ="통과" Else Cells(2, 3) ="실패"
전체 문장을 한 줄에 표시하지 않으려면 줄 끝에 "_" 기호를 추가하여 여러 줄로 나눌 수 있습니다.
If Cells(2, 2)> 75 Then _
셀(2, 3) ='통과' 그 외 _
셀(2, 3) ="실패"
이 기술을 사용하면 종종 코드를 훨씬 더 쉽게 읽고 디버그할 수 있습니다.
다음 루프용 VBA
IF 문은 단일 셀을 보는 위의 예와 같이 단일 비교에 적합합니다. 그러나 전체 셀 범위를 반복하고 각각에 대해 동일한 IF 문을 수행하려면 어떻게 해야 합니까?
이 경우 FOR 루프가 필요합니다.
이렇게 하려면 범위의 길이를 사용하고 데이터를 포함하는 행 수만큼 해당 길이를 반복해야 합니다.
이렇게 하려면 범위 및 셀 변수를 정의하고 반복해야 합니다. 또한 결과를 적절한 행에 출력할 수 있도록 카운터를 정의해야 합니다. 따라서 VBA 코드에는 먼저 이 줄이 있습니다.
Dim rng As Range, cell As Range
행 카운터를 정수로 흐리게
범위 크기를 다음과 같이 정의합니다.
rng =범위 설정("B2:B7")
rowCounter =2
마지막으로 FOR 루프를 만들어 해당 범위의 모든 셀을 단계별로 실행하고 비교를 수행할 수 있습니다.
For Each cell In rng If cell.Value > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Next cell
이 VBA 스크립트가 실행되면 실제 스프레드시트에서 결과를 볼 수 있습니다.
VBA While 루프
While 루프는 FOR 루프와 마찬가지로 일련의 명령문을 반복하지만 계속되는 루프의 조건은 true로 남아 있는 조건입니다.
예를 들어 다음과 같이 단순히 rowCounter 변수를 사용하여 위의 동일한 FOR 루프를 WHILE 루프로 작성할 수 있습니다.
While rowCounter < rng.Count + 2 If Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Wend
참고:rng.Count + 2 행 카운터는 2에서 시작하고 데이터가 끝나는 행 7에서 끝나야 하기 때문에 종료 제한이 필요합니다. 그러나 범위(B2:B7)의 카운트는 6이고 카운터가 카운터보다 GREATER인 경우에만 While 루프가 종료됩니다. 따라서 마지막 rowCounter 값은 8(또는 rng.Count + 2)이어야 합니다.
다음과 같이 While 루프를 설정할 수도 있습니다.
rowCounter <=rng.Count + 1 동안
rowCounter 변수가 데이터의 끝에 도달하면(행 7) 루프가 완료될 수 있기 때문에 범위 수(6)만 1 증가시킬 수 있습니다.
VBA Do While 및 Do When 루프
Do While 및 Do When 루프는 While 루프와 거의 동일하지만 작동 방식이 약간 다릅니다.
- While 루프 루프 시작 시 조건이 참인지 확인합니다.
- Do-While 루프 루프에서 명령문을 실행한 후 조건이 참인지 확인합니다.
- Do-Until 루프 루프를 실행한 후 조건이 여전히 거짓인지 확인합니다.
이 경우 위의 While 루프를 Do-While 루프로 다음과 같이 다시 작성합니다.
Do If Cells(rowCounter, 2) > 75 Then _ Cells(rowCounter, 3) = "Pass" Else _ Cells(rowCounter, 3) = "Fail" rowCounter = rowCounter + 1 Loop While rowCounter < rng.Count + 2
이 경우 논리는 크게 변경되지 않지만 모든 명령문이 실행된 후 논리 비교가 수행되도록 하려면(최소한 한 번은 모든 명령문을 실행하도록 허용) Do-While 또는 Do-Until 루프가 올바른 옵션입니다.
VBA 선택 사례 설명
VBA 코드 구성을 시작하기 위해 이해해야 하는 논리문의 마지막 유형은 Select Case 문입니다.
위의 예에서 단순히 통과 실패가 아닌 채점 방법을 원한다고 가정해 보겠습니다. 대신 A에서 F까지의 문자 등급을 지정하려고 합니다.
다음 Select Case 문으로 이 작업을 수행할 수 있습니다.
For Each cell In rng Select Case cell Case 95 To 100 Cells(rowCounter, 3) = "A" Case 85 To 94 Cells(rowCounter, 3) = "B" Case 75 To 84 Cells(rowCounter, 3) = "C" Case 65 To 74 Cells(rowCounter, 3) = "D" Case 0 To 64 Cells(rowCounter, 3) = "F" End Select rowCounter = rowCounter + 1 Next cell
이 VBA 스크립트가 실행된 후 결과 스프레드시트는 아래와 같습니다.
이제 Microsoft Office 응용 프로그램에서 VBA를 사용하기 시작하기 위해 알아야 할 모든 것을 알게 되었습니다.